在 win xp 上汇编 COM 可执行文件
有没有办法将 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:
END HOSTD:>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
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将汇编代码作为内联汇编包含到 C 文件中,然后使用标准 C 编译器将其编译为 COM。
Include your assembly code as inline assembly into a C file, then compile it with a standard C compiler to COM.