汇编程序无法找到现有文件

时间:2014-06-03 07:10:32

标签: assembly x86 dos tasm dosbox

我的TASM已安装到我的TASM,TLINK和文件所在的文件夹中。具体来说,它位于C:/TASM/BIN。运行单个.asm文件时没有问题但是当我包含另一个文件以便我的代码看起来模块化时,会出现这个问题。

我现在已经包含了6个文件,其中包含printMzpos1.kt。 (文件扩展名在汇编文件包含中无关紧要。)我的主文件名是c.asm。该图像显示printMzpos1.kt位于我的TASM所在的文件夹中:

enter image description here

以下是我的代码的快照。我在printMzpos1.kt之后和main endp之前添加了end mainprintMzpos1.kt包含打印框的过程。

.model small
.386
.stack 64

.data
colorW      db  0Fh
xPos        dw  ?
currmode    db  ?
horLineLen  dw  120
verLineLen  dw  70

include macro.kt

.code

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
MAIN proc far
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

mov ax, @data
mov ds, ax
mov es, ax

setVidMode  
cls

call printMzPos1
;call move3Boxes

retVidMode  
mov ax, 4c00h
int 21h

MAIN endp

include printMzPos1.kt
include printMzPos2.kt
include printMzPos3.kt
include printMzPos4.kt
include drawRect.kt
include move3Boxes.kt

end MAIN

虽然我认为我把它包括在内,但我还是得到了这个:

**Fatal** c.ASM(39) Can't locate file: printMzPos1.kt

enter image description here

出了什么问题?

1 个答案:

答案 0 :(得分:8)

名称printMzPos1.kt太长了。 DOSBox和TASM仅接受8.3-names。在DOSBox中键入DIR(或在Windows中为DIR /X),您会看到PRINTM~1.KT之类的内容。这是printMzPos1.kt的8.3名称,你必须使用它。你可能看到几个PRINTM~X.KT文件。因此,您必须搜索这些名称中的哪些与您的姓名相关。 '〜X'只是操作系统为唯一性创建的序号。

您也可以将文件重命名为较短的名称,以使它们符合8.3限制。