分析下列指令,解释划线部分指令功能,当(20H)=02H时,程序执行完以后,存储单元218的内容为多少?
ORG 1000H
START MOV DPTR, #2000H
MOV A, 20H
MOVC A, @A+DPTR
MOV 21H,A
SJMP S
ORG 2000H-
TABLE:DB 00,01,04,09,16,25
END
当(20H)=02H时:
ORG 1000H
START MOV DPTR, #2000H 表的起始地址
MOV A, 20H 就是说20H地址中的2给累加器A
MOVC A, @A+DPTR 寄存器A保存查询表的结果
MOV 21H,A 把查询的结果给地址21H
SJMP S
ORG 2000H- 在地址为2000H处存储表的数据
TABLE:DB 00,01,04,09,16,25
END
结论:2000H+02H=2002H,查询2002H地址的数据,就是04,然后把04给地址21H.
应该没错哈,没学过c51的汇编,看着理解的。