微机原理及应用 堆栈操作指令 掌握 有关堆栈的概念栈顶、栈底 堆栈指令的操作原理 执行过程,执行结果 令雄操作的原则后进先出 以字为单位
微机原理及应用 1111 堆栈操作指令 掌握: • 有关堆栈的概念 栈顶、栈底 • 堆栈指令的操作原理 执行过程,执行结果 ❖堆栈操作的原则 • 后进先出 • 以字为单位
微机原理及应用 12 堆栈操作指令 压栈指令PUSH执行过程: sP)←(SP)-2 (SP)-1←操作数高字节 (SP)-2←操作数低字节 出栈指令POP执行过程 SP)—操作数低字节 SP)+1操作数高字节 (sP)←(SP)+2
微机原理及应用 1212 堆栈操作指令 • 压栈指令 PUSH 执行过程: (SP)←(SP)-2 (SP)-1←操作数高字节 (SP)-2←操作数低字节 • 出栈指令POP执行过程: (SP) 操作数低字节 (SP)+1 操作数高字节 (SP)←(SP)+2
微机原理及应用 13 压栈指令的操作 设AX=1234H,SP=1200H,执行 PUSH AX 指令后堆栈区的状态: 入栈前 入栈后 12H34H AX SP-2=1IFEH 34H 12H 堆栈段 1200H 堆栈段 1200H
微机原理及应用 1313 压栈指令的操作 设AX=1234H,SP=1200H,执行 PUSH AX 指令后堆栈区的状态: 堆 栈 1200H 段 ┇ SP-2=11FEH 12H 34H 1200H ┇ 堆 栈 段 12H 34H AX 入栈后 入栈前
微机原理及应用 出栈指令的操作 执行 POP AX堆栈区的状态 PUSH 代码段 12|34 34H 1IEH堆 AX 12H 栈段 SP+2
微机原理及应用 14 出栈指令的操作 14 执行 POP AX 堆栈区的状态: 12H 34H 11FEH ┇ 堆 栈 段 代 码 段 PUSH 12 34 AX SP+2
微机原理及应用 15 堆栈操作指令说明 指令的操作数必须是16位的 操作数可以是寄存器或存储器两单元,但不能 是立即数 。不能从栈顶弹出一个字给cS PUSH和POP指令在程序中一般成对出现 PUSH指令的操作方向是从高地址向低地址, 而POP指令的操作正好相反
微机原理及应用 1515 堆栈操作指令说明 ⚫ 指令的操作数必须是16位的 ⚫ 操作数可以是寄存器或存储器两单元,但不能 是立即数 ⚫ 不能从栈顶弹出一个字给CS ⚫ PUSH和POP指令在程序中一般成对出现 ⚫ PUSH指令的操作方向是从高地址向低地址, 而POP指令的操作正好相反