关于一个栈空间的问题!
assume cs:code,ds:data,ss:stackdata segment
dw 0123h,0456h,0789h,0545h,0545h,5454h,54f5h,5456h
data ends
stack segment
dw 0,0,0,0,0,0,0,0,0,0
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,0fh
mov ax,data
mov ds,ax
mov bx,0
mov cx,8
s: push [bx]
add bx,2
loop s
mov bx,0
mov cx,8
s0: pop [bx]
add bx,2
loop s0
mov ax,4c00h
int 21h
code ends
end start
这是个用栈逆序排放数据的程序,红体字的地方,是我设的栈顶位置,数据段有8个字!
今天做这个时,遇到两个问题,
一、用debug单步跟进入栈循环,结果仅两步,debug就停止工作了,想问的是,debug会提前预测到栈空间不足的问题么?
二、栈空间足够的情况下,执行完入栈循环后,查看栈段数据,发现数据并没有从栈底将数据段的数据逆序排放,(例:9,8,7,6,5,4,3,2,1,逆序排放),而是顺序排放,(例:1,2,3,4,5,6,7,8,9)!这是为什么?
[ 本帖最后由 wsm340223 于 2012-10-10 19:15 编辑 ]