在 win xp 上汇编 COM 可执行文件

发布于 2024-10-16 16:51:30 字数 762 浏览 0 评论 0原文

有没有办法将 x86 代码组装成 COM 可执行文件?我使用 masm32 作为我的汇编器。在汇编/链接命令行上找不到足够的信息,所以我总是会遇到错误...

这是一个简单的程序和我得到的错误:

有什么想法吗?向其他具有更好文档的汇编器提出建议也很好......

代码:

 .model 小
  。代码

  组织100H
主持人:
  移动啊,9
  mov dx,偏移高
  整数21H

  莫夫斧头,4C00H
  整数21H

HI DB '嗨$'

  终端主机

用于组装的命令和错误:

D:>ml /AT test.s Microsoft (R) 宏 汇编版本 6.14.8444 版权所有 (C) Microsoft Corp 1981-1997。保留所有权利。

组装:test.s Microsoft (R) 增量链接器版本 5.12.8078 版权所有 (C) 微软公司 1992-1998。保留所有权利。

/z2 “主机.obj”/t “test.com” 零点 链接:警告 LNK4044:无法识别的选项“z2”;被忽略 链接:警告 LNK4044:无法识别的选项“t”;被忽略 test.obj:警告 LNK4033:将对象格式从 OMF 转换为 COFF test.obj:致命错误 LNK1190: 发现无效修复,输入 0x0001

Is there a way of assembling x86 code into COM executables? I am using masm32 as my assembler. Can't find enough information on the assembling/linking command line so I always end up getting errors...

Here's a simple program and the error I get:

Any ideia? Suggestions to other assemblers with better documentation would be nice too...

Code:

  .model tiny
  .code

  ORG 100H
HOST:
  mov ah, 9
  mov dx, OFFSET HI
  int 21H

  mov ax, 4C00H
  int 21H

HI DB 'Hi

Command used to assembly and Error:

D:>ml /AT test.s Microsoft (R) Macro
Assembler Version
6.14.8444 Copyright (C) Microsoft Corp 1981-1997. All rights reserved.

Assembling: test.s Microsoft (R)
Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp
1992-1998. All rights reserved.

/z2
"host.obj" /t
"test.com"
NUL
LINK : warning LNK4044: unrecognized option "z2"; ignored
LINK : warning LNK4044: unrecognized option "t"; ignored
test.obj : warning LNK4033: converting object format from OMF to COFF
test.obj : fatal error LNK1190:
invalid fixup found, type 0x0001

END HOST

Command used to assembly and Error:

D:>ml /AT test.s Microsoft (R) Macro
Assembler Version
6.14.8444 Copyright (C) Microsoft Corp 1981-1997. All rights reserved.

Assembling: test.s Microsoft (R)
Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp
1992-1998. All rights reserved.

/z2
"host.obj" /t
"test.com"
NUL
LINK : warning LNK4044: unrecognized option "z2"; ignored
LINK : warning LNK4044: unrecognized option "t"; ignored
test.obj : warning LNK4033: converting object format from OMF to COFF
test.obj : fatal error LNK1190:
invalid fixup found, type 0x0001

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

靖瑶 2024-10-23 16:51:30

将汇编代码作为内联汇编包含到 C 文件中,然后使用标准 C 编译器将其编译为 COM。

Include your assembly code as inline assembly into a C file, then compile it with a standard C compiler to COM.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文