6、以下程序段执行之后,分析A及PC的内容为何?
1004H:MOV A,#02H
1006H:MOV DPTR,#7000H
1009H:MOVC A,@A+DPTR
…
ORG 7000H
DB 02H,04H,06H,08H
“Devil组”引证GPT后的撰写:
这是一段基于8051的汇编语言代码,以下是对程序段的解释:
1004H:MOV A,#02H
将立即数02H移动到累加器A中。
1006H:MOV DPTR,#7000H
将立即数7000H移动到数据指针寄存器DPTR中。
1009H:MOVC A,@A+DPTR
将外部程序存储器中[A+DPTR]的内容复制到累加器A中,并且A自动加1。
ORG 7000H
定义程序的起始地址为7000H。
DB 02H,04H,06H,08H
在7000H开始的程序存储器中,以字节形式定义数据02H、04H、06H和08H。
执行完这段程序后,A和PC寄存器的内容会发生变化:
A的内容将变为外部程序存储器中的02H,因为MOVC指令将[A+DPTR]的内容(即7002H处的数据)复制到A中。
PC的内容将变为100CH,因为执行MOVC指令后,PC自动加2,指向下一条指令的地址为100CH。