在使用间接寻址的时候,MOVD &VB0,LD0 MOVW *LD0,LW4这样一个间接寻址程序中,第二个传送指令怎么可以用MOVW字的传送呢,*LD0不就是等于&VB0吗,&VB0是一个32位的地址指针啊?
图片说明:
最佳答案
MOVD &VB0,LD0 这个语句就是将VB0这个字节的地址放到32位指针LD0中
这时LD0指向的内容可以按字节、字、双字寻址,就是不能按位寻址。
比如
按字节寻址:MOVB *LD0,LB4 就是将VB0传送到 LB4
按字寻址: MOVW *LD0,LW4 就是将VW0传送到 LW4
按双字寻址:MOVD *LD0,LD4 就是将VD0传送到 LD4
这三种寻址都是以LD0这个指针所指向存储单元VB0为起始地址的。
字节寻址,*LD0指向的就是VB0这个字节的内容
字寻址时,*LD0指向的就是VW0(包括VB0、VB1)这个字的内容
双字寻址,*LD0指向的就是VD0(包括VB0、VB1、VB2、VB3)这个双字的内容。
提问者对于答案的评价:
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc368185.html