汇编问题,程序无法执行

来源:百度知道 编辑:UC知道 时间:2024/05/24 09:45:28
data segment
buff1 db 4fh,0b6h,7ch,34h,56h,1fh
buff2 db 13h,24h,57h,68h,0fdh,9ah
sum db 6 dup(?)
cont db 3
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov si,offset buff1
mov di,offset buff2
mov bx,offset sum
mov cl,cont
mov ch,0
clc
goon:mov ax,[si]
adc ax,[di]
inc si
inc si
inc di
inc di
mov [bx],ax
inc bx
inc bx
loop goon
mov ax,4ch
int 21h
code ends
end start
程序编译连接都通过了,执行出错,原来放在C盘,它运行出现“Commad Prompt - t2
NTVDM CPU 遇到无效的指令。
CS:000c IP:0d06 OP:ff ff 00 00 00选择“关闭”终止应用程序”
之后放在F盘,运行不了直接窗口关了。
还有奇怪的是我文件名一长就调用不出来,像我文件名写成masm123456789,就调用不了,这是为什么?是不是要改环境变量?高手指导下,谢谢!~

你用的是DOS中断int21,那么你是在什么系统下执行的?如果是98以后的操作系统不兼容DOS指令,而且好像DOS 6.22以上的DOS版本也不兼容以前的DOS版本(不确定)。
如果你用的是DOS 6.22以前的操作系统,那么DOS是不支持长文件名的。