MOⅤ指令特点及注意事项: ●双操作数指令注意双操作指令的特点) ●可进行字节或字传送 ●不允许存储器传送到存储器 MOV[ BxI, value Mov[D耵,[S MOV AX, value MOV [BXI, AX MOV AL, SI MOV dI, AL
MOV指令特点及注意事项: ⚫ 双操作数指令 (注意双操作指令的特点) ⚫ 可进行字节或字传送 ⚫ 不允许存储器传送到存储器 MOV [ BX ] , value MOV [DI], [SI] MOV AX ,value MOV [ BX ] ,AX MOV AL ,[SI] MOV [ DI ] ,AL
●可对DS、ES、SS赋值 但不允许立即数直接传送给段寄存器 MOV DS AX MOV ES,[BXI MOV DS 1000H MOV AX 1000H MOV DS AX ●CS不能做目的操作数,不能通过传送指令改变CS的值 MOV S, AX
⚫ 可对 DS、ES、SS 赋值 但不允许立即数直接传送给段寄存器 MOV DS,AX MOV ES ,[BX] MOV DS,1000H MOV AX ,1000H MOV DS,AX ⚫ CS不能做目的操作数, 不能通过传送指令改变CS的值 MOV CS , AX
●不允许段寄存器传送到段寄存器 MOV ES, DS MOV AX, DS MOV ES, AX D: MASM>DEBUG A 1693: 0100 MOV ES DS A Error 1693: 0100 MOV AX. DS 1693: 0102 MOV ES. AX 1693:0104
⚫ 不允许段寄存器传送到段寄存器 MOV ES ,DS MOV AX , DS MOV ES , AX D:\MASM>DEBUG -A 1693:0100 MOV ES, DS ^ Error 1693:0100 MOV AX, DS 1693:0102 MOV ES, AX 1693:0104 -
2)PUSH入栈操作 格式 PUSH src 执行 (SP) (SP)-2 SS: SP src (SS:SP)←(src) SS: SP 特点: ●单操作数指令 ●操作数为16位,可以是reg/ segre/mem,不可以是data reg AX, BX, CX, DX, sl, Dl, BP, Bx segreg CS, DS, ES. SS mem:字类型
2)PUSH入栈操作 格式 PUSH src 执行 ( SP) ← (SP)- 2 (SS:SP)← (src) 特点: ⚫ 单操作数指令 ⚫ 操作数为16位,可以是reg/segreg/mem, 不可以是data reg : AX, BX, CX, DX, SI, DI, BP, BX segreg : CS, DS, ES, SS mem : 字类型 SS:SP SS:SP (src)
例: PUSH AX 若执行前: 则执行后: (SS)=2000H (SS)=2000H 不变 (SP)=1002H (SP)=1000H 减2 (SS:SP)=2010H (SS:SP)=1234H变 (AX)=1234H (AX)=1234H 不变 址 址 低 SS: SP 2A 2000:1000 34 3B 12 SS: SP 2000:1002 10 10 20 20 (AX)=1234h 高 (AX)=1234h 高 指令执行前 指令执行后
例: PUSH AX 若执行前: (SS)= 2000H (SP)= 1002H (SS:SP)= 2010H (AX)= 1234H 3B 2A 10 低 高 20 地址 SS:SP 2000:1002 指令执行前 (AX)=1234h 则执行后: (SS)= 2000H (SP)= 1000H (SS:SP)= 1234H (AX)= 1234H 12 34 10 低 高 20 地址 SS:SP 2000:1000 指令执行后 (AX)=1234h 不变 减2 变 不变