+ -
当前位置:首页 → 问答吧 → 16位子系统错误提示。。。

16位子系统错误提示。。。

时间:2011-06-28

来源:互联网

我写了这么个代码 是在控制台左上角显示三句红底绿字的welcome!的 、【1】请问 为什么我debug时每次到mov si,0
这就跳出一个16位子系统错误。。。请问这是为什么啊。。。郁闷  
【2】还有个问题 为什么我在代码段添加mov ax,code mov cs,ax但debug时就只有mov cs,ax那句 前一句莫名其妙没掉了??
[code=Assembly][assume cs:code,ds:data,ss:stack
data segment ;数据段
  db 'welcome !'
data ends

stack segment ;堆栈段
  db 0,0,0,0,0,0
stack ends

code segment ;代码段
start:mov ax,data
  mov ds,ax
  mov ax,stack
  mov ss,ax
  mov ax,code
  mov sp,6

  mov ax,0b800h
  mov es,ax

  mov bx,0
  mov cx,3
 yes:push cx  
  mov si,0
mov di,0
  mov cx,9
 s1: ;内循环
  mov al,ds:[si] ;字符字节
  mov ah,0cah ;颜色字节
  mov es:[di+bx],ax ;把ax传给目标字内存
  add si,1
  add di,2
  loop s1
  add bx,0a0h

  pop cx ;外循环的cx出照栈
  loop yes
  mov ax,4c00h
  int 21h
code ends
end start ]

作者: wdl131415   发布时间: 2011-06-28

把栈设大一点。

作者: masmaster   发布时间: 2011-06-28