接下来的内容不需要全部记住!只需要记住常用指令即可!
数据传送指令
使用最频繁的指令。
将不同的指令划分位指令类,每一类中的指令执行相同的操作,唯一的区别是操作数大小不同
- MOV类
将数据从源位置复制到目的位置
- movb
- movw
- movl
- movq
- movabsq
MOV S,D
=> (S => D)
源操作数限定的值为立即数,存储在寄存器或者内存中
目的操作数是一个地址,在内存或寄存器中
限制:传送指令的两个操作数不能都指向内存位置:将一个值从一个内存位置复制到另一个内存位置需要两条指令,先将其加载到寄存器中,再加载到指定位置。
寄存器的大小必须与指令最后一个字符指定的大小匹配。
movl
以寄存器为目的时会将该寄存器的高位设置为0
movabsq
以任意64位立即数作为源操作数,并且只能以寄存器作为目的
- MOVZ类与MOVS类
将较小的数值复制到较大的目的地
把数据从源复制到目的寄存器(源为寄存器或内存地址)
MOVZ
将目的中剩余的字节填充为0
MOVS
将目的中剩余的字节以符号位(s:sign)进行填