我使用的是来自以下站点的TASM汇编程序版本,该版本是为64位Windows单独创建的版本:https://techapple.net/2013/01/tasm-windows-7-windows-8-full-screen-64bit-version-single-installer/#comment-187611
下面的代码(addbyte.asm)只添加两个数字。
我用
痉挛型addbyte.asm
而且它的编译没有任何问题。
data segment
num1 db 05h
num2 db 05h
result db ?
data ends
code segment
assume ds:data, cs:code
start:
mov ax,data
mov ds,ax
mov al,num1
mov bl,num2
add al,bl
mov result,ah
mov ah,4ch
int 21
code ends
end start
end但当我试图把它联系起来时.
tlink addbyte.asm
或
tlink addbyte.obj
上面写着:
addbyte.asm :坏的对象文件
更新:我尝试了tlink addbyte.obj,得到了以下结果:


在此之前,我从未编写过一条汇编代码,我只是跟随我的指导者,她建议使用这个汇编程序来编译x86汇编代码。我不知道这是怎么回事。我只是被困在这里了。任何帮助都将不胜感激。
发布于 2020-08-18 04:56:43
tlink程序是一个链接器,它能够获取已经组装或编译的二进制文件,并从中生成一个可执行文件。您需要通过汇编程序运行源代码才能获得二进制组装文件,这就是tasm程序。
这一过程基本上是:
asmSource -> TASM -> objFile -> TLINK -> exeFile(尽管有可能使用多个对象文件或编译器使用更高级别的语言将其转换为对象文件):
asmSource -> TASM -----> objFile
\
>-> TLINK -> exeFile
/
hllSource -> COMPILER -> objFile实际上,您发布的链接实际上包含了以下信息:
tasm filename.asmtlink filename.objtd或td filenamefilename.exe在您的特定情况下,您可能会发现这个序列可以工作(减去右边的注释):
tasm addbyte.asm # to assemble.
tlink addbyte.obj # to link.
addbyte.exe # to run.
td addbyte.exe # to debug.例如,下面是与该包一起分发的示例add2程序的正确组装、链接和运行的快照(不过,如果要添加两个数字,这不是一个非常好的程序):

另外,我不知道实际使用tasm有多明智。我知道DosBox对任何用途都是免费的,但tasm本身在很大程度上是一种商业产品,可能仍然受到版权限制。从记忆中,它从Borland传递到Codegear,然后我认为它以Embarcadero结束,尽管他们在他们的网站上没有提到它,所以我不能确定。事实上,我有一份合法的副本,因为我是那种从不扔掉任何东西的人,这让我妻子的鄙视很大:-)
现在您可能还好(顺便说一句,这不是法律建议),但您最好还是谨慎地使用它,并为您的目的找到另一个汇编程序,比如Netwide汇编程序或雅玛斯。
https://stackoverflow.com/questions/63462081
复制相似问题