还没有执行任何一条指令前,数据存储器 RAM 内容、工作寄存器的值、ACC 累加器的值、DPTR 数据指针的高 8 位 DPH 以及低 8 位 DPL 的值如下图所示:
执行完下面这条指令
RAM 数据存储器的 0x23 地址处单元的内容就被赋值为 0x30,如下图所示:
接着往下执行,0x12 地址 RAM 单元内容被赋值为 0x12,如下图所示:
接着单步执行,R0 工作寄存器中的内容被赋值为 0x23,如下图所示:
继续单步运行,R7 工作寄存器中的内容被赋值为 0x22,如下图所示:
接着往下执行一步,R1 工作寄存器中的内容被赋值为 0x34,也就是 RAM 的 0x12 地址单元内容,如下图所示:
继续走一步,ACC 累加器中的内容被改写为 0x30,就是以 R0 工作寄存器中的内容 0x23 为地址的 RAM 单元内容 0x30,如下图所示:
再单步运行一步,因为在前面执行过的步骤中 R1 工作寄存器中的内容被赋值为了 0x34,所以下面这条指令就是将 RAM 单元 0x34 地址单元内容取出又赋值回 0x34 地址单元
得到的结果如下图所示(0x34 单元内容依然为 0x00):
接着就是直接寻址:
得到的结果如下图:
DPTR 被赋值,如下图所示:
紧接着,高 8 位赋值给 0x12 地址单元,如下图:
低 8 位赋值给 R0 工作寄存器,如下图:
最后捏~,执行寄存器间接寻址,ACC 改变,如下图:
|