当前位置:编程学习 > 汇编语言 >>

单片机汇编语言求指教!!!!在线等!!谢谢谢!!!

若(R0)=23H , (23H)=08H ,(47H)=25H 则指令MOV @RO,47H代表什么意思??谢谢哥哥姐姐们!!!
答案:这是一条寄存器间接寻址的数据存放,结果是   (23H)=25H
上面打括号的代表地址,后面的代表数据。
@R0是一个间接寻址,意思是把@R0里面的数据作为地址来使用,这儿的(R0)=23H,
于是 MOV @R0,47H 等价于 MOV 23H,47H  在汇编语言中,没有打#的数据,一律视为地址处理,
于是,这条指令里面的47H,23H都视为地址,意思就是说,把47H地址里面的数据存储到23H里面,47H存放的内容是25H,上面的指令意思就是  MOV 23H,#25H
其他:@R0是寄存器间接寻址,R0中存放的是单元地址。因此执行这句指令完后,RAM(23H)=25H 23H指向47H   47H指向25H MOV       @R0   47H 寄存器间址寻址
把47H的内容传给R0所存的地址23H中,即(23H)=25H ORG 0000H START:MOV 78H,#0 ;初始化:78H放0的段码,其余放熄灭码 MOV 79H,#10 MOV 7AH,#10 MOV 7BH,#10 MOV 7CH,#10 MOV 7DH,#10 MOV 首先47H前面没有#号,说明47H不是立即数,那是什么呢,是内存单元的地址,这句话的意思是将内存单元(该单元地址为47H) 里的数(该数为25H)取出来,送到哪呢,  R0的值是23H,,前面又有@ ,说明程序把Ro的值(值是23H)当作内存单元的地址(地址为23H),该单元里原先放的是08H,现在将取出来的数(25h)送到这个单元里去,即 (23H)=25H 把47H这个地址中的数据送给08H 这条指令对于目标操作数而言是个寄存器间接寻址方式,对源操作数而言是个直接寻址方式
就是把47H的值的内容赋给以R0值也就是23H里面的内容(08H)为地址的单元中去
  结果就是(08H)=(25H) 

上一个:汇编语言该怎样学 给点意见
下一个:看过王爽的汇编语言,了解汇编中断例程的朋友进来帮帮我

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,