+ -
当前位置:首页 → 问答吧 → cx执行到3的时候就崩溃了,怎么回事?

cx执行到3的时候就崩溃了,怎么回事?

时间:2011-12-03

来源:互联网

Assembly code
assume cs:code

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,16
    mov cx,8
    mov bx,0
    s:
    push [bx]
    add bx,2
    loop s
    mov ax,4c00h
    int 21h 
code ends
end start



我debug加载后,t命令执行到cx=3的时候就崩溃了,怎么回事?

作者: haolly   发布时间: 2011-12-03

增大堆栈,比如: mov sp,100h

作者: mydo   发布时间: 2011-12-03

栈的空间不足,改大一点。

作者: Silent_hi   发布时间: 2011-12-03

引用楼主 haolly 的回复:
Assembly code
assume cs:code

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
mo……

添加:
assume ds:a,ss:b

调整b:
b segment stack
  db 256 dup(0)
b ends

删除:
dos安装程序会自动初始化栈,你在自己的程序中不要管ss、sp的初始化

作者: gsy999   发布时间: 2011-12-03

热门下载

更多