1. mov ax,stack
mov ss,ax
mov sp,16
;没见着这3句
2.-t会保存一些数据,把你的数据冲掉了,这个等学到中断就懂了
3.跑一跑这个程序
程序代码:
.model
.code
main proc far
start:
xor ax,ax
push ds
push ax
mov ax,1111h
push ax
pop ax
xchg ax,bx
add sp,-2
pop ax
xor ax,bx
jnz exit
push cs
pop ds
lea dx,mess
mov ah,9
int 21h
exit:
ret
main endp
mess db "hello world!$"
end start
4.你的代码可以这么改下,DEBUG时候-g执行看ax的值
程序代码:
assume cs:code,ss:stack
stack segment stack
dw 0,0,0,0,0,0,0,0
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,16
mov ax,1111h
push ax
pop ax
sub sp,2
pop ax
int 3
mov ax,4c00h
int 21h
code ends
end start