(汇编区没人理):一个栈段为何在SS:SP指定后 莫名改变了内容?该怎么处理

(汇编区没人理):一个栈段为何在SS:SP指定后 莫名改变了内容?
Assembly code

assume cs:code, ss:b

a segment
dw 1,2,3,4,5,6,7,8,9,0ah, 0bh,0ch,0dh,0eh,0fh,0ffh
a ends

b segment
dw 0,0,0,0,0,0,0,0
b ends

code segment
start: mov ax,a
mov ds,ax
mov ax,b
mov ss,ax
mov sp,10h

mov bx,0
mov cx,8
s: 
push ds:[bx]
add bx,2
loop s

mov ax,4c00h
int 21h

code ends
end start




是王爽教材 第6章 实验5(6)的题目。 是将a段中的前8个字 数据, 逆序压到b段中。

问: debug的时候 发现当执行完
mov ss,ax
mov sp,10h
查看下 b段中的内容, 发现已经不全是0了。 为什么会发生改变呢?

------解决方案--------------------
触发断点需要调用中断,中断的调用过程需要使用栈空间……
------解决方案--------------------
栈空间是个公共场所,栈空间不仅仅只是你push的时候用。
栈要设大点,不然容易出现错误。
------解决方案--------------------
因为debug的每一步都是中断,中断就要用栈
你可以看下栈里的值就是CS和IP