首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >链接错误:<filename>.asm :坏的对象文件

问链接错误:<filename>.asm :坏的对象文件
EN

Stack Overflow用户
提问于 2020-08-18 04:54:09
回答 1查看 2.1K关注 0票数 1

我使用的是来自以下站点的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

而且它的编译没有任何问题。

代码语言:javascript
复制
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汇编代码。我不知道这是怎么回事。我只是被困在这里了。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-18 04:56:43

tlink程序是一个链接器,它能够获取已经组装或编译的二进制文件,并从中生成一个可执行文件。您需要通过汇编程序运行源代码才能获得二进制组装文件,这就是tasm程序。

这一过程基本上是:

代码语言:javascript
复制
asmSource -> TASM -> objFile -> TLINK -> exeFile

(尽管有可能使用多个对象文件或编译器使用更高级别的语言将其转换为对象文件):

代码语言:javascript
复制
asmSource -> TASM -----> objFile
                                \
                                 >-> TLINK -> exeFile
                                /
hllSource -> COMPILER -> objFile

实际上,您发布的链接实际上包含了以下信息:

  • 用于编译,tasm filename.asm
  • 用于链接,tlink filename.obj
  • 对于调试器,td或td filename
  • 为了执行,filename.exe

在您的特定情况下,您可能会发现这个序列可以工作(减去右边的注释):

代码语言:javascript
复制
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汇编程序或雅玛斯。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63462081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档