ling7 发表于 2011-11-19 16:17:41

实验3题目的问题 求各位大大help

本帖最后由 ling7 于 2011-11-19 21:29 编辑

                                        //ax      bx      cx      dx      sp      ds      es      ss      cs      ip      栈中数据:      A      B      C      D      E      F
      mov ax,2000H      //2000      0      16      0      0      b97      b97      ba7      ba7      3      
      mov ss,ax                //                                                                2000      6
      mov sp,0                //                                                                              8
      add sp,10                //                                        A                                        B                              97      0B      06      32      0B      00
      pop ax                        //0B97                              C                                        C                              94      05      06      32      0B      00
      pop bx                        //                3206                E                                        D                              A7      0B      94      05      0B      00
      push ax                        //                                        C                                        E                              94      05      97      0B      0B      00
      push bx                        //                                        A                                        F                              06      32      97      0B      0B      00
      pop ax                        //3206                              C                                        10                              94      05      97      0B      0B      00
      pop bx                        //                0B97                E                                        11                              A7      0B      94      05      0B      00
      
      mov ax,4c00H      //4C00                                                                        14
      int 21H                        //
我push 数据进去然后pop出来后那个内存地址的数据就发生了改变
是不是它被系统拿去用在别的地方了哦?
那是不是说。。栈空间存储数据进去然后拿出来只能一次性使用。。
如果不是的话。。 那我
ax=1 bx=2push axpush bx
pop ax pop bx ax=2 bx=1
这段内存空间被释放掉。系统拿去存别的内存
然后我再pop axpop bx的时候就不再是 原来的 1 和2了呀。。

ling7 发表于 2011-11-19 16:18:41

额   粘贴之后数据格式改变了。。 如果看起来很蛋疼的话麻烦弄到txt文件。。

ling7 发表于 2011-11-19 16:19:12

上班去了。晚上回来看看有木有人帮忙。。

tsembrace 发表于 2011-11-19 16:49:58

push之后栈空间增2,栈顶sp=sp-2;
pop之后栈空间缩2,栈顶sp=sp+2;原来的2个内存单元被释放,系统可以使用。
你最后那句话:
“ax=1 bx=2push axpush bx
pop ax pop bx ax=2 bx=2
这段内存空间被释放掉。系统拿去存别的内存
然后我再pop axpop bx的时候就不再是 原来的 1 和2了呀。。”
第一次pop的时候pop bx,bx应该是1;
你再pop ax ,pop bx的时候和之前的1.2没有关系了

关键是感觉 发表于 2011-11-19 17:39:19

这格式,头痛

ling7 发表于 2011-11-19 22:07:28

额 下午发帖的时候 ax=1 bx=2push axpush bx
pop ax pop bx ax=2 bx=2
这段东西打错了现在改回来。。
栈的理论 和poppush书上写的 我知道。。
但是我想知道的是我pop ax和popbx之间 并没有任何 push和mov操作吧。
为什么SS:A的数据会从0594变成0BA7捏?

ling7 发表于 2011-11-20 10:52:51

自己顶。。 求解

tsembrace 发表于 2011-11-21 04:08:39

你说的SS:A,A是什么。你自己把一楼的格式改改吧,没人愿意去看这么乱的。
你如果弄清楚的话,就该知道在pop操作后原先的栈顶空间被释放,系统可以用这段内存空间的。
页: [1]
查看完整版本: 实验3题目的问题 求各位大大help