NTVDM CPU遇到无效的指令 汇编

来源:百度知道 编辑:UC知道 时间:2024/05/17 07:14:44
我是汇编的新手..在运行以下程序时,弹出了指示窗口
16位 MS-DOS子系统
NTVDM CPU遇到无效的指令
CS:05b1 IP:0116 OP:c6 26 01 c6 06 选择"关闭终止应用程序

这是为什么呢?另外,哪位大牛指教一下汇编程序的调试技巧??

prog segment
org 100h
assume cs:prog,ds:prog,es:prog,ss:prog
main proc near
mov bx,offset table
add bx,entry
mov ax,[bx]
table dw 10,20,30,40,50
entry dw 3
main endp
prog ends
end main
原来上边是因为少了个INT 20H

以下是将字符串cstring中的第1个和第7个字符传送给DX寄存器并输出的程序,但编译时总提示错误
3-12.ASM(7): error A2048: Must be index or base register
是因为什么呢??哪位帮忙解答一下啊..谢谢!
kstr segment
org 100h
assume cs:kstr,ds:kstr,es:kstr,ss:kstr
main proc near
lea ax,cstring
mov dl,al
mov dh,byte ptr [ax+6h];就是这句出问题了
mov ah,9
int 21h
int 20h
cstring db 'based addressing'
main endp
kstr ends
end main

参考答案站得更高才能看得更远。

这还不简单,程序如下:
data segment
abc dw
data ends
code segment
assume cs:code,ds:data
main proc far
mov ax,data
mov ds,ax
mov ax,1 ;给ax赋初值
mov cx,99 ;总共循环99次
lop: inc ax ;ax增加1
add abc,ax ;相加,最终的结果就在变量abc里
loop lop ;循环
mov ah,4ch
int 21h
main endp
code ends
end main
不过本程序没有显示功能