汇编语言MOV指令详解以及错误写法修正

汇编语言中,MOV是最基本的一种操作。
格式:MOV dest,src
操作:将src的内容移至dest,移动后src的内容仍在,dest的内容被src覆盖。
其规则如下:
1.CS、IP的值不可以作为目标操作数;
2.dest、src不可以同时作为存储器操作数出现;
3.段寄存器不能相互转送;
4.不能把立即数送人段寄存器。
常见错误写法:
1.
DATA DB 10H
MOV [SI],DATA
解释:[SI]指向的是内存内的数,违反规则2,所以此语句错误。
改正:MOV AX,DATA;MOV [SI],AX
2.
MOV CS,AX
MOV DS,1000H
解释:见规则1、4。正确写法:MOV AX,CS(虽然这个没有什么实际意义,但是仅说明这种写法是可行的,即把段寄存器的内容传到寄存器里);MOV BX,1000H;MOV DS,BX
3.
MOV AX,DL
解释:前后数据类型不匹配,所以不能传送。可以改成MOV AL,DL
4.
MOV DATA,AH
解释:DATA的类型没有说明,如果是DB类型,那么这条语句没错,否则前后类型不一致,错误。改正:DATA必须是DB类型。
5.
DATA DW 1234H
MOV DATA,WORD PTR AH
解释:PTR无法对寄存器进行操作。改正:MOV BYTE PTR DATA,AH。举例说AH的值是00H,操作完成后,内存中的数应该是00H 12H。
6.
MOV [SI],10H
解释:MOV不可以把立即数送入内存中。改正:MOV AH,10H MOV BYTE PTR[SI],AH。

总结一下:MOV命令的书写必须遵守开始列出的四条规则,除此之外注意操作类型需要一致。

  • 31
    点赞
  • 152
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值