x86 扩展传送指令
x86 扩展传送指令
x86 扩展传送指令包含了两种指令
1. 符号扩展传送指令 MOVSX
把寄存器或者内存的值,符号扩展到更大的寄存器中。 有如下操作数匹配方式:
1 2 3 4 5 6
| MOVSX reg16, reg8/mem8 MOVSX reg32, reg8/mem8 MOVSX reg64, reg8/mem8 MOVSX reg32, reg16/mem16 MOVSX reg64, reg16/mem16 MOVSXD reg64, reg32/mem32
|
2. 零扩展传送指令 MOVZX
把寄存器或者内存的值,零扩展到更大的寄存器中。 有如下操作数匹配方式:
1 2 3 4 5
| MOVZX reg16, reg8/mem8 MOVZX reg32, reg8/mem8 MOVZX reg64, reg8/mem8 MOVZX reg32, reg16/mem16 MOVZX reg64, reg16/mem16
|
AT&T 格式的扩展传送指令
- 传送方向改为从左至右
- 指令后面加上 B、W 指明操作数大小
- MOVSXD 也可以用 MOVSXL 来代替
1 2 3 4 5 6 7 8 9 10 11 12 13
| movsxb reg8/mem8, reg16 movsxb reg8/mem8, reg32 movsxb reg8/mem8, reg64 movsxw reg16/mem16, reg32 movsxw reg16/mem16, reg64 movsxd reg32/mem32, reg64 movsxl reg32/mem32, reg64
movzxb reg8/mem8, reg16 movzxb reg8/mem8, reg32 movzxb reg8/mem8, reg64 movzxw reg16/mem16, reg32 movzxw reg16/mem16, reg64
|