2668305540 发表于 2013-5-31 12:58:27

王爽汇编实验三 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后栈顶以上更小的地址空间是不会变的,为什么会变呢?


姗姗莱咫 发表于 2013-5-31 13:34:40

强烈支持楼主ing……

2668305540 发表于 2013-5-31 16:44:10

高手快快出现吧
页: [1]
查看完整版本: 王爽汇编实验三 pop后为什么原来的栈顶自动改变?