已知堆栈段寄存器SS的内容是0FFA0H,堆栈指针寄存器SP的内容是00B0H,先执行两条把8057H和0F79H分别进栈的PUSH指令,再执行一条POP指令。试画出堆栈区和SP的内容变化过程示意图(标出存储单元的物理地址)。
谢谢啦~
已知堆栈段寄存器SS的内容是0FFA0H,堆栈指针寄存器SP的内容是00B0H,先执行两条把8057H和0F79H分别进栈的PUSH指令,再执行一条POP指令。试画出堆栈区和SP的内容变化过程示意图(标出存储单元的物理地址)。
谢谢啦~
在电脑上你叫我怎么画呢?
“8057H”进栈,则SP自动从00B0H指向00B2H,“0F79H”进栈,则SP自动从00B2H指向00B4H
执行一条POP指令,“0F79H”被弹出栈,SP从00B4H指向00B2H
你只要把栈当作搭积木一样理解就行了
1 0FFA00H+00BCH 0000H 2 0FFA00H+00BCH 0000
0FFA00H+00AEH 0000H sp—> 0FFA00H+00AEH 8057H
sp—> 0FFA00H+00B0H 00B0H 0FFA00H+00B0H 00B0H
3 sp—> 0FFA00H+00BCH 0F79H 4 0FFA00H+00BCH 0F79H
0FFA00H+00AEH 8057H sp—> 0FFA00H+00AEH 8057H
0FFA00H+00B0H 00B0H 0FFA00H+00B0H 00B0H