当前位置: 代码迷 >> 汇编语言 >> 下面的汇编程序,能够通过编译以及连接,最后通过debug运行,结果运行了一半多的指令就报错了,该怎么解决
  详细解决方案

下面的汇编程序,能够通过编译以及连接,最后通过debug运行,结果运行了一半多的指令就报错了,该怎么解决

热度:7063   发布时间:2013-02-26 00:00:00.0
下面的汇编程序,能够通过编译以及连接,最后通过debug运行,结果运行了一半多的指令就报错了,
错误提示是跳出一个小框,上面说 :

  16位 MS-DOS 子系统
C:\WINDOWS\system32\cmd.exe -debug 14.exe
NTVDM CPU 遇到无效的指令。
CS:0000 IP: 0077 OP:f0 37 05 0e 02 选择“关闭”终止应用程序


上面就是错误提示,真的看不懂什么意思,麻烦各位有经验的帮个忙。下面的内容是我的代码:
assume cs:code
a segment
 db 1,2,3,4,5,6,7,8
a ends

b segment
  db 1,2,3,4,5,6,7,8
b ends

e segment
  db 0,0,0,0,0,0,0,0
e ends

code segment

start: mov ax,e
  mov ss,ax
mov sp,8
 
 
mov ax,a
mov ds,ax
 
mov ax,b
mov es,ax

mov bx,0
  mov cx,8
 
s: mov al,ds:[bx]
  add al,es:[bx]
add bx,1
mov ah,ds:[bx]
add ah,es:[bx]

push ax
add bx,1
loop s

  mov ax,4c00h
int 21h
code ends  

end start

------解决方案--------------------------------------------------------
code segment

start: mov ax,e
mov ss,ax
mov sp,32
把堆栈重新设置下就可以了。
  相关解决方案