assembly 汇编程序无法定位现有文件

qyzbxkaa  于 2023-05-29  发布在  其他
关注(0)|答案(1)|浏览(100)

我的TASM安装到我的TASM、TLINK和其他文件所在的文件夹中。具体来说,它位于C:/TASM/BIN。我在运行单个.ASM文件时没有问题,但当我包含另一个文件以便代码看起来模块化时,就会出现这个问题。
到目前为止,我已经包含了6个文件,其中包括printMzpos1.kt。(文件扩展名在程序集文件包含中无关紧要。)我的主文件的名称是c.ASM。图像显示printMzpos1.kt位于我的TASM挂载的文件夹中:

下面是我的代码的快照。我在main endp之后和end main之前包含了printMzpos1.ktprintMzpos1.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

哪里出了问题?

disho6za

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的限制。

相关问题