MOV AX,1111
说明:
(1)立即数只能作为源操作数,而其他三种既可作源操作数又可作目的操作数; 如:MOV 45,AL 错 A
(2)存储器和存储器之间以及段寄存器和段寄存器之间不允许传数,而通用寄存器之间则允许相互传数。 如:MOV DS,ES 错
(3)立即数不能直接传送到段寄存器。
如:MOV DS,1000 错
可改正为: MOV AX,1000 MOV DS,AX
(4)源操作数和目标操作数类型要匹配。 如:MOV AX,BL 错
(5)段寄存器CS只能作源操作数,不能作为目标操作数。 如:MOV CS,1000 错
2、数据交换指令(XCHG) 指令格式:XCHG OP1, OP2 reg, reg mem,reg
reg, mem 功能:用于交换两个操作数。 例如: XCHG AX,BX
XCHG [DI],CL ;数据A段(DS)*10H+(DI)中的数与CL交换。
说明:
(1)源操作数和目标操作数寻址可以是通用寄存器和存储器,不能是立即数。
如:XCHG AX,1000 错
(2)存储器之间不能直接进行数据交换
如:XCHG [2000],[1000] 错
3、堆栈操作指令(PUSH/POP)
指令格式:PUSH OP1 POP OP1 imm16 mem16 imm32 mem32 mem16 reg16 mem32 reg32 reg16
reg32 功能:
PUSH指令使(E)SP的内容减2或减4,然后把16位或32位的立即数、存储器操作数或寄存器操作数压入堆栈, SS:[(E)SP]指向新的栈顶。 POP指令从堆栈把字或双字弹出至16位或32位存储器或通用寄存器中,(E)SP的内容加2或加4。 例如:
PUSH AX;(SP)-2→SP,(AX)→(SP)
POP AX;((SP))→AX,(SP)+2→SP
注:堆栈为“先进后出”的数据结构。
全部通用寄存器压栈和出栈指令 指令格式及功能:
PUSHA/POPA;16位通用寄存器压栈和出栈指令。入栈顺序为:AX、CX、BX、DX、SP、BP、SI和DI。
PUSHAD/POPAD;32位通用寄存器压栈和出栈指令。入栈顺序为:EAX、ECX、EBX、EDX、 ESP、EBP、ESI和EDI。
其中:SP和ESP为操作前的栈顶指针。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库13271088 邢凤 debug(2)在线全文阅读。
相关推荐: