我的TASM已安装到我的TASM,TLINK和文件所在的文件夹中。具体来说,它位于C:/TASM/BIN
。运行单个.asm文件时没有问题但是当我包含另一个文件以便我的代码看起来模块化时,会出现这个问题。
我现在已经包含了6个文件,其中包含printMzpos1.kt
。 (文件扩展名在汇编文件包含中无关紧要。)我的主文件名是c.asm
。该图像显示printMzpos1.kt
位于我的TASM所在的文件夹中:
以下是我的代码的快照。我在printMzpos1.kt
之后和main endp
之前添加了end main
。 printMzpos1.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
出了什么问题?
答案 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限制。