大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说mov指令「建议收藏」,希望能够帮助大家进步!!!
一、规定
1.立即数不能作为目的操作数,如mov 110H,AX
2.立即数不能直接传给段寄存器,如mov DS,110H
2.两个操作数不能同时为段寄存器,如mov ES,DS
3.两个操作数不能同时为存储单元,如mov 0x1245,0x1312
5.代码段寄存器CS不能为目的操作数,但可为源操作数
6.指令指针IP不能作为mov指令的操作数
MOV指令的变通方法
功能描述 | 不正确的指令 | 可选的解决方法 |
---|---|---|
把DS的值传送给ES | MOV ES, DS | MOV AX, DS MOV ES, AX |
把100H传给DS | MOV DS, 100H | MOV AX, 100H MOV DS, AX |
把字变量VARB的值传送给字变量VARA | MOV VARA, VARB | MOV AX, VARB MOV VARA, AX |
二、传送填充指令
a.符号填充指令MOVSX(Move with Sign-Extend)---高位填充1
MOVSX的填充方式是:用源操作数的符号位来填充目的操作数的高位数据位。
b.零填充指令MOVZX(Move with Zero-Extend)---高位填充0
MOVZX的填充方式是:恒用0来填充目的操作数的高位数据位。