如何编译 16 位 Mac 汇编代码?
因此,我尝试在我的 Mac(蒙特雷)上汇编这段 16 位汇编代码:
global _main
section .text
_main:
mov ah, 0x0e
mov al, '!'
int 0x10
mov ah, 0x4c
int 0x21
我正在使用 NASM 汇编器,并且到目前为止已设法使用以下命令将其汇编成 .com 文件:
nasm test.asm -o test.com -f bin
但是,当尝试使用 LD 使用以下命令将其链接到可执行文件时:
ld -e _main -static -o test test.com -arch x86_64
它出现错误:
stand-x86_64 但尝试链接到为 未知不支持的文件格式(0xB4 0x0E 0xB0 0x21 0xCD 0x10 0xB7 0x0E 0xB5 0x0E 0xB6 0x0E 0xBE 0x0E 0x00 0xBF ) 未定义的符号 架构 x86_64:“_main”,引用自: -u 命令行选项 ld: 未找到架构 x86_64 的符号 ```
有谁知道如何解决这个问题?
So I'm trying to assemble this piece of 16bit assembly code on my Mac (Monterey):
global _main
section .text
_main:
mov ah, 0x0e
mov al, '!'
int 0x10
mov ah, 0x4c
int 0x21
I am using the NASM assembler, and have so far managed to get it assembled into a .com file using the following command:
nasm testing.asm -o test.com -f bin
However when trying to link this into an executable using LD with the following command:
ld -e _main -static -o test test.com -arch x86_64
it comes up with the error:
standing-x86_64 but attempting to link with file built for unknown-unsupported file format ( 0xB4 0x0E 0xB0 0x21 0xCD 0x10 0xB7 0x0E 0xB5 0x0E 0xB6 0x0E 0xBE 0x0E 0x00 0xBF ) Undefined symbols for architecture x86_64: "_main", referenced from: -u command line option ld: symbol(s) not found for architecture x86_64 ```
Does anyone know how to fix this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论