2

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

到目前为止,我已经包含了 6 个文件,其中包括printMzpos1.kt. (文件扩展名在程序集文件包含中无关紧要。)我的主文件的名称是c.asm. 图像显示它printMzpos1.kt位于安装我的 TASM 的文件夹中:

在此处输入图像描述

这是我的代码的快照。我包括printMzpos1.ktaftermain endp和 before 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

在此处输入图像描述

什么地方出了错?

4

1 回答 1

10

名字printMzPos1.kt太长了。DOSBox 和 TASM 只接受8.3-names。在DIRDOSBox(或DIR /XWindows)中输入,你会看到类似PRINTM~1.KT. 这是 printMzPos1.kt 的 8.3 名称,您必须使用它。您可能会看到几个 PRINTM~X.KT 文件。所以你必须搜索这些名字中的哪一个与你的名字相关。'~X' 只是操作系统为唯一性而创建的序列号。

您也可以将文件重命名为更短的名称,以便它们适合 8.3 限制。

于 2014-06-03T07:33:14.687 回答