指令MOV与MOVX有什么不同之处?
MOV指令表示单片机内部的寄存器或者存储器之间相互传递数据,而MOVX则表示单片机内部的A累加器与片外的数据存储器传送数据.还有两条是MOVC的指令,它们表示A向ROM(程序存储器)读取数据,因为程序存储器是固定的不可以写的,所以,A只能读数据,却不能向它写数据.换句话说MOVX和MOVC是针对两种不同的存储器而言,一个是数据存储器,另一个却是程序存储器.
七种寻址方式举例为:
1、立即寻址方式:
指令:MOV AX,1234H
则: AX = 1234H
2、寄存器寻址方式:
对于16位操作数,寄存器可以是:AX、BX、CX、DX、SI、DI、SP和BP等。
3、直接寻址方式:
MOV AX,[8054]
如(DS)= 2000H,
则执行结果为(AX) = 3050H
4、寄存器间接寻址方式:
MOV AX,[SI]
如果(DS) = 5000H (SI)= 1234H
则物理地址 = ?50000 + 1234 = 51234H
51234H地址中的内容为:6789H
执行该指令后,(AX)= 6789H
5、寄存器相对寻址方式:
MOV AX,[DI+1223H]
假设,(DS) = 5000H,(DI) = 3678H
则物理地址 = 50000 + 3678 + 1233 = 5489BH
5489BH地址中的内容:55AAH
执行该指令后AX = 55AAH
6、基址加变址寻址方式:
MOV AX,[BX][DI]
7、相对基址加变址寻址方式:
MOV AX,[BX+DI-2]
假设,(DS) = 5000H,(BX) = 1223H,DI = 54H,(51275)= 54H,(51276) = 76H
物理地址= 50000 + 1223 + 0054 + FFFE(-2 各位取反末位加一)= 51275H
执行该指令后 (AX) = 7654H
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!