主程序 主程序 执程 行子 序1 执 IP 执行子程序 IP P(下)、(下)、 程 继主 继主 继子 续程 续程 尖续程 执序 执序 执序 行1 a (b) 子程序调用示意图 (a)主程序调子程序;(b)子程序嵌套示意图
11 主程序 IP 继 续 执 行 主 程 序 执 行 子 程 序 主程序 IP IP(下) 继 续 执 行 主 程 序 IP’ 执 行 子 程 序 2 IP’(下) 执行子 程序1 继 续 执 行 子 程 序 1 (a) (b) 子程序调用示意图 (a) 主程序调子程序; (b) 子程序嵌套示意图 IP(下)
规定由SS指示堆栈段的段基址,堆栈指针SP 始终指向堆栈的顶部,SP的初值规定了所用 堆栈区的大小。堆栈的最高地址叫栈底。 SS 进栈方向 栈顶 堆栈段 SP 退栈方向 栈底
12 规定由SS指示堆栈段的段基址,堆栈指针SP 始终指向堆栈的顶部,SP的初值规定了所用 堆栈区的大小。堆栈的最高地址叫栈底。 SP SS 堆栈段 进栈方向 退栈方向 栈底 栈顶
①压栈指令 PuSH src;Src为16位操作数 例: PUSH AX;将AX内容压栈 执行操作:(SP)-1←高字节AH (SP)-2←低字节AL (SP)←(SP)-2
13 ① 压栈指令 PUSH src ; src为16位操作数 例:PUSH AX ;将AX内容压栈 执行操作:(SP)-1←高字节AH (SP)-2←低字节AL (SP)←(SP)- 2
设(AX)=1020H,执行示意图如图2-8 存储区 存储区 低地址 低地址 (SS段) (SS段) SP)-2 SP) 20 (AL) (SP)-1 10 (AH) (SP) 进栈方向 执行前 高地址 高地址|执行后 (AX)=1020 PUSHAX指令执行示意图
14 设(AX)=1020H,执行示意图如图 低地址 存储区 (SS段) 执行前 (AX)=1020 (SP) 存储区 (SS段) 进栈方向 执行后 20 10 (AL) (AH) 2-8 PUSH AX指令执行示意图 (SP)-2 (SP) 高地址 低地址 高地址 (SP)-1