王爽汇编第6章,实验6不会了

问题遇到的现象和发生背景

学习汇编遇到问题了,mov sp,24没问题,改成30h,代码代码段执行到入栈就跳出pop es命令了。搞不懂?

问题相关代码,请勿粘贴截图

assume cs:code
data segment
dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh
data ends

stack segment
dw 0,0,0,0,0,0,0,0
stack ends

code segment
start: mov ax,data
mov ds,ax
mov bx,0

mov ax,stack
mov ss,ax
mov sp,30h
mov cx,8

s: push [bx]
add bx,2
loop s

mov ax,4c00h
int 21h

code ends
end start

运行结果及报错内容

img

我的解答思路和尝试过的方法

mov sp 24 和30H 都能编译过,可为什么执行就不一样呢?

我想要达到的结果

将数据段前8位逆序放入栈中。

assume cs:code
data segment
    dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh
data ends

stack segment
    dw 0,0,0,0,0,0,0,0
stack ends

code segment
start:    mov ax,data
    mov ds,ax
    mov bx,0
        
    mov ax,stack
    mov ss,ax
    mov sp,30h
    mov cx,8

s:    push [bx]
    add bx,2    
    loop s

    mov ax,4c00h
    int 21h

code ends
end start

再提交一遍,没搞好!