跟着锅子一步步学习32位汇编(3)---MOV和XCHG指令

MOV 大家在前面都见识过了。。其实用高级语言来说就是 = 的意思,赋值,不是==哦。

MOV指令是最基本的操作寄存器方式,主要注意4点。

1.目的和源,尺寸必须一致

mov eax,ax

mov ax,ah

mov al,eax

这些都是错误的!尺寸一致,指的是位数,即,大家都是32位,那就OK。

 

2.目的和源,不能都是内存操作数,

如果真想来回捣鼓 2个 内存数,那就用数据寄存器做中转站吧。

记得初学编程的时候,喜欢用temp 做临时变量,然后替换2变量,把temp 用数据寄存器就OK了。

 

3.CS,EIP,IP,不能直接用MOV操作,具体如何改变他们的值,以后再说。

4.立即数不能直接放段寄存器

解释下,何为立即数:你看到这个东东,一看就知道是一个值,那就是立即数了,比如80h,90h(80后,90后,哈哈,锅子差2月就是80后了。。)

mov ds,1000h

这是错的!,怎么操作 请看上面第2条

 

MOV还有2个扩展的 MOVSX和MOVZX,目前不太用了哦,有兴趣的可以查查相关。

 

XCHG指令,除了 不接受立即数,其他和MOV操作基本相同。我们看上面第2点,童鞋们一定想,能不能用XCHG实现 2内存交换呢,回答当然是肯定的!

mov ax,val1

xchg ax,val2

mov val1,ax

转载于:https://www.cnblogs.com/guogairenjia/archive/2011/11/04/2236318.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值