发布网友 发布时间:2022-04-26 17:08
共2个回答
热心网友 时间:2023-10-16 05:54
我的分析不一定对,仅供参考。 基本思路是从R2R3处取偏移量,乘以2(每个数据为2个字节)通过A加给DPTR,R2加给DPL,r3加给DPH,再从DPTR处取数,交给A,再给R2R3. MOV DPTR,#TAB 表的首地址给DPTR MOV A,R3 r3的值给A CLR C C置零 RLC A A乘2(左移一位后补零) XCH A,R2 A和r2交换数值 RLC A A左移一位,即乘2 XCH A,R2 A和r2交换。至此,相当于R3乘2后给了R2,r2里存的是r3.乘2后的数,A里是r2乘2后的数。 ADD A,DPL DPL的值加给A MOV DPL,A;调整DPL,DPH 相当于把原r2里的数乘2当做偏移地址加给DPL MOV A,DPH ADDC A,R2 MOV DPH,A 相当于把原r3里的数乘2当做偏移地址加给DPH CLR A MOVC A,@A+DPTR;查表 MOV R2,A;第一字节 CLR A INC DPTR MOVC A,@A+DPTR;查第二字节 MOV R3,A RET TAB: DW XXXXH;共1024个数据项 DW XXXXH ...... DW XXXXH 因为查表的数字是双字节,所以低位给r2,高位给r3.热心网友 时间:2023-10-16 05:54
这就看你 这个数据表 放在什么位置了,首地址#2000h 说明 这个数据表 放在这个位置。