DosBox执行TASM命令报“Unexpected end of file”错误求助
解决TASM编译时"Unexpected end of file encountered"错误
你在DosBox执行命令:
tasm /zi base.asm
遇到错误:
Fatal base.asm(7) Unexpected end of file encountered
你的汇编代码:
IDEAL MODEL small STACK 100h DATASEG var db ? CODESEG start: mov ax, @data mov ds, ax mov [var], 5 exit: mov ax, 4c00h int 21h END start
这个错误看起来代码逻辑没问题,但大概率是文件格式或编码不兼容导致的——TASM对DOS标准的文本格式要求很严格,给你几个具体的排查和解决方向:
- 调整文件编码与换行格式:TASM只支持ANSI编码+CRLF(DOS换行)的文件。如果你的代码是UTF-8编码(尤其是带BOM头的)或使用LF(Unix换行),会导致编译器解析异常,误以为文件提前结束。用记事本打开代码后,点击「另存为」,编码选择「ANSI」,保存后重新编译。
- 检查文件末尾的异常字符:部分编辑器可能会在文件末尾插入不可见的控制字符,或者你保存时未完整写入最后一行。可以用十六进制编辑器打开文件,确认
END start这一行完整,行尾是0D 0A的DOS换行符,文件末尾没有乱码或多余字符。 - 重新手动保存代码:偶尔编辑器会出现保存bug,你可以新建一个空白文件,手动重新输入所有代码(避免直接复制粘贴可能带的格式问题),保存为ANSI编码的asm文件后再尝试编译。
按以上方法调整后,重新执行编译命令应该就能正常通过了。
内容的提问来源于stack exchange,提问作者Michal
相关产品推荐
相关产品推荐

