汇编语言-mov注意事项

标签:
杂谈 |
分类: 汇编 |
对于MOV 这个传送指令
有7点规定:
1. 两个操作数的数据类型一定要相同,源操作数是8位那么目的操作数也得是8位的。以此类推 16位 32位也一样。
2.两个操作数不可以同时为段寄存器 ,
3.代码段寄存器CS 不能作为 目的操作数,但可以作为 源操作数使用。
4.立即数不可以直接传给段寄存器,
5.立即数也不能作为目的操作数,
6.指令指针 IP 寄存器 不可以做为 MOV 指令操作数;
7.两个操作数不能同时作为存储单元,
那么真的规定 2 4 7
这几个规定,我可以可以用寄存器作为中转来达到传递数值的最终目的。
数据传递示范
http://s3/middle/4696b376h80dab8e8a4b2&690
我们学习传送指令 中的填充指令 MOVSX 这个指令它的作用是把位数短的源操作数传送给位数长的目的操作数。
填充指令功能:
http://s13/middle/4696b376h80dac5399ddc&690
那么填充指令也分:符号填充指令与零填充指令
符号填充指令 =
符号填充指令填充方式: 用源操作数的 符合位 来填充 目的操作数的高位数据位。
零填充指令 =
零填充指令填充方式:恒用 0 来填充 目的操作数的高位数据位。
下面我举个例子: 假设 8位寄存器
而零填充指令
这样示范我相信大家都能够了解 是吧 O(∩_∩)O
上面2句汇编指令 源操作数 都是完全一样的 都是 AL 寄存器,但因为它们的填充指令方式不同,所以得得结果就不同。
那么这节课程我就出个考题:
题目汇编代码为: