哥哥们来帮我看看这个源程序哪里不对。。。
这个我是想看看栈段在pop 数据出栈之后原来的数据还会不会存在。可是在运行的时候到pop bx就直接弹出了,哪里出问题了 本帖最后由 Jany 于 2013-7-25 22:53 编辑数据是存在的,只不过栈顶指向改变了,好像你的入栈只有一个吧,你再加个入栈数据看下 据我所知出栈的话仅仅改变栈顶指向 不会对内存中的数据有影响
至于你为什么会弹出 本菜不知道 sorry 不知道你写的什么意思{:5_94:} 其实你压入栈只有一次,出栈有2次。至于这样会导致什么错误呢,我想大概是堆栈不平衡了。 栈的机制决定了他在使用完之后,只是移动了sp,里面的数据却没有被破坏,除非下次再次入栈,便会覆盖之前的数据。
执行完了pop ax pop bx 后 ax的值为0008 bx的值为0007
可直接在debug下查看ss:sp对应的栈值还是0001到0008八个字的数据
你用p指令执行完pop bx后程序正常退出,因为debug下无法下断点,你可以用emu8086下断点在mov ax, 4c00h,然后查看之前栈的内容。
页:
[1]