如何编译 16 位 Mac 汇编代码?

发布于 2025-01-10 13:07:21 字数 680 浏览 0 评论 0原文

因此,我尝试在我的 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 技术交流群。

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文