我的TASM安装到我的TASM、TLINK和其他文件所在的文件夹中。具体来说,它位于C:/TASM/BIN
。我在运行单个.ASM文件时没有问题,但当我包含另一个文件以便代码看起来模块化时,就会出现这个问题。
到目前为止,我已经包含了6个文件,其中包括printMzpos1.kt
。(文件扩展名在程序集文件包含中无关紧要。)我的主文件的名称是c.ASM
。图像显示printMzpos1.kt
位于我的TASM挂载的文件夹中:
下面是我的代码的快照。我在main endp
之后和end main
之前包含了printMzpos1.kt
。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
哪里出了问题?
1条答案
按热度按时间disho6za1#
名称
printMzPos1.kt
太长。DOSBox和TASM只接受8.3-names。在DOSBox中输入DIR
(或在Windows中输入DIR /X
),您会看到类似PRINTM~1.KT
的内容。这是printMzPos1.kt的8.3-name,您必须使用。您可能会看到几个PRINTM~X.KT文件。所以你必须搜索这些名字中的哪一个与你的名字中的哪一个相关。'~X'只是操作系统为唯一性而创建的序列号。您也可以将文件重命名为更短的名称,以便它们符合8.3的限制。