为之疯狂 发表于 2014-4-6 13:33:35

自动关闭这是为什么?

assumecs:codesg,ds:datasg,ss:stack

datasg segment
db 'ibm             '
db 'dec             '
db 'dcs             '
db 'vax             '
datasg ends

stack segment
dw 0
stack ends

codesg segment
start: mov ax,datasg        ;确定数据段
           mov ds,ax
           mov bx,0
          
           mov ax,stack                ;确定栈段
           mov ss,ax
           mov sp,3
          
           mov cx,4
        s0:push cx                        ;保存外层循环变量的值
           mov si,0
       
               mov cx,3
          s: mov al,
               and al,11011111b
               mov ,al
               
               inc si
               loop s
               
           add bx,16
           pop cx                        ;还原cx的值
           loop s0
          
           mov ax,4c00h
           int 21h
codesg ends
end start

为之疯狂 发表于 2014-4-6 13:35:09

程序执行到 20 行(mov ss,ax)的时候就关闭了

wiliam 发表于 2014-4-6 15:40:24

为之疯狂 发表于 2014-4-6 13:35 static/image/common/back.gif
程序执行到 20 行(mov ss,ax)的时候就关闭了

把sp调到 6试试顺便说说 sp到6一下就会这样以前回答过这问题吧

cqxcool 发表于 2014-4-6 20:18:02

debug程序的时候也是需要使用栈的! 所以, 如果程序栈太小的话, 自然会引起一些问题的!
给栈分配多一些空间就可以了。
页: [1]
查看完整版本: 自动关闭这是为什么?