把栈中数据逆序怎么会这样
codesg segmentdw 0123h,0456h,0789h,0defh,0cbah,0987h
dw 0,0,0,0,0,0,0,0,
start: mov ax,cs
mov ss,ax
mov sp,32
mov bx,0
mov cx,8
s: push cs:
add bx,2
loop s
mov bx,0
mov cx,8
s0: pop cs:
add bx,2
loop s0
mov ax,4c00h
int 21h
codesg ends
end start这个是照着视屏打的,跟视频改了几次,应该没打错,但是我debug的时候感觉很奇怪
这个是之前的
这个是运行到最后用d命令出来的
为什么会这样
逆序存放,数据出来的就是逆的。
无回帖,不论坛,这才是人道。 思来想去 发表于 2013-4-10 08:18 static/image/common/back.gif
逆序存放,数据出来的就是逆的。
无回帖,不论坛,这才是人道。
奇怪的是原本为0的位置变成了其他的数,还有用来当栈的地址上的数也变成了其他的数,而不是原来放进栈中的数,这些代码中貌似没有对这地址放入其他的数为什么还会这样?? 虚拟的8086模式,有数据应该是正常的,我认为是这样的
无回帖,不论坛,这才是人道。 思来想去 发表于 2013-4-10 21:19 static/image/common/back.gif
虚拟的8086模式,有数据应该是正常的,我认为是这样的
无回帖,不论坛,这才是人道。
由0变成其他数字,栈中,原本入栈的数字在出栈后该栈中的内容发生改变.....
那么......推论:进行栈操作的时候会对该地址空间的内容进行改变?
还是,有其他程序的操作对这些空间进行了改变??
页:
[1]