王爽汇编实验三 pop后为什么原来的栈顶自动改变?
本帖最后由 2668305540 于 2013-5-31 13:02 编辑assume cs:codesg
codesg segment
mov ax,2000h
mov ss,ax
mov sp,0
add sp,10
popax
popbx
pushax
pushbx
popax
popbx
mov ax,4c00h
int 21h
codesg ends
代码我看得懂
就是T运行后栈中的内容不明白
这是第一个pop前的栈内容:
-t
AX=2000BX=0000CX=0016DX=0000SP=000ABP=0000SI=0000DI=0000
DS=140EES=140ESS=2000CS=141EIP=000B NV UP EI PL NZ NA PE NC
141E:000B 58 POP AX
-d 2000:a
2000:0000 00 00 00 00 00 00 ......
2000:001000 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
pop ax后的:
-t
AX=0000BX=0000CX=0016DX=0000SP=000CBP=0000SI=0000DI=0000
DS=140EES=140ESS=2000CS=141EIP=000C NV UP EI PL NZ NA PE NC
141E:000C 5B POP BX
-d 2000:a
2000:0000 08 0E 00 00 00 00 ......
2000:001000 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
file:///C:\Documents and Settings\William\Application Data\Tencent\Users\2668305540\QQ\WinTemp\RichOle\JVY`$Q7B(GWNU1N3Z3CIEEV.jpg各步后的栈原地址内容如下:
-t
AX=0000BX=0000CX=0016DX=0000SP=000EBP=0000SI=0000DI=0000
DS=140EES=140ESS=2000CS=141EIP=000D NV UP EI PL NZ NA PE NC
141E:000D 50 PUSH AX
-d 2000:a
2000:0000 1E 14 08 0E 00 00 ......
2000:001000 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
-t
AX=0000BX=0000CX=0016DX=0000SP=000CBP=0000SI=0000DI=0000
DS=140EES=140ESS=2000CS=141EIP=000E NV UP EI PL NZ NA PE NC
141E:000E 53 PUSH BX
-d 2000:a
2000:0000 08 0E 00 00 00 00 ......
2000:001000 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
-t
AX=0000BX=0000CX=0016DX=0000SP=000ABP=0000SI=0000DI=0000
DS=140EES=140ESS=2000CS=141EIP=000F NV UP EI PL NZ NA PE NC
141E:000F 58 POP AX
-d 2000:a
2000:0000 00 00 00 00 00 00 ......
2000:001000 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
-t
AX=0000BX=0000CX=0016DX=0000SP=000CBP=0000SI=0000DI=0000
DS=140EES=140ESS=2000CS=141EIP=0010 NV UP EI PL NZ NA PE NC
141E:0010 5B POP BX
-d 2000:a
2000:0000 08 0E 00 00 00 00 ......
2000:001000 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
-t
AX=0000BX=0000CX=0016DX=0000SP=000EBP=0000SI=0000DI=0000
DS=140EES=140ESS=2000CS=141EIP=0011 NV UP EI PL NZ NA PE NC
141E:0011 B8004C MOV AX,4C00
-d 2000:a
2000:0000 1E 14 08 0E 00 00 ......
2000:001000 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
没有push只是pop为什么pop出去后原来的栈顶会变?
我原来想是pop或是push后栈顶以上更小的地址空间是不会变的,为什么会变呢?
强烈支持楼主ing…… 高手快快出现吧
页:
[1]