mov用于数据传送。之后分为目的操作数和源操作数,目的操作数必须是通用寄存器或者内存单元:源操作数可以是具有相同数据宽度的通用寄存器或者内存单元,还可以是立即数。传送指令只影响目的操作数内容,不改变源操作数内容。
如:(8086)
mov ah,bh 8位寄存器
mov ax,dx 16位寄存器
数据宽度不同,错误:
mov ax,bl
段起始地址:偏移地址,默认使用段寄存器DS:
mov [0x02],bl 8位
mov ax,[0x06] 16位
源操作数为立即数:
mov ah,0x05
mov word [0x1c], 0xf000 因为位数不确定要用word(字)或byte(字节)修饰
mov指令的目的操作数不允许为立即数,目的操作数和源操作数不允许同时为内存单元:
mov 0x1c,al 错
mov [0x01],[0x02] 错,因为处理器不允许在两个内存单元之间进行传送操作,可以用两条指令实现。
mov ax,[0x02]
mox [0x01],ax
其他指令也都不支持链各个内存单元之间直接进行操作。直接传送操作需要增加额外电路。