关于汇编的问题
assume cs:code,ds:data,ss:stackdata segment
dw 0123h,0234h,0345h,0456h,0567h,0678h,0789h,089ah
data ends
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,10h
mov ax,data
mov ds,ax
mov bx,0
mov cx,8
s: push
add bx,2
loop s
mov bx,0
mov cx,8
s0: pop
add bx,2
loop s0
mov ax,4c00h
int 21h
code ends
end start
上边这个程序为什么可以编译链接,但运行时出错。我把栈段stack改成16个字单元空间,把sp改成20h,就不出错了。我就是不明白,定义的数据段是8个字的,用8个字的栈段来存放,应该能放下啊,为什么要用16个字的空间来存放呢?我是初学,所以一直想不明白,请鱼油们指教,谢谢了。 {:1_1:} assume cs:code,ds:data,ss:stack data segment dw 0123h,0234h,0345h,0456h,0567h,0678h,0789h,089ah data ends stack segment dw 0,0,0,0,0,0,0,0 stack ends code segment start: mov ax,stack mov ss,ax mov sp,10h mov ax,data mov ds,ax mov bx,0 mov cx,8 s: push add bx,2 loop s mov bx,0 mov cx,8 s0: pop add bx,2 loop s0mov ax,4c00h int 21h code ends end start
页:
[1]