【问题标题】:Hello world linking issue (ASM)你好世界链接问题(ASM)
【发布时间】:2013-01-06 17:17:11
【问题描述】:

好的,今天我正在尝试学习一些 asm。

我正在使用 nasm 和 go 链接。这个 hello world 似乎运行良好:

bits 32
extern _MessageBoxA@16
extern _ExitProcess@4

section .data
    title db 'Somme message',0 
    message db 'Hello World!',0 

section .text
global _start
_start:
    push dword 0            ; Type = MB_OK
    push dword title            ; Caption
    push dword message             ; Message
    push dword 0            ; Handle = NULL
    call _MessageBoxA@16

    push dword 0            ; Exit Code = EXIT_SUCCESS
    call _ExitProcess@4

我可以通过以下方式构建它: nasm -fwin32 test.asm golink /entry _start /mix test.obj user32.dll, kernel32.dll

现在我的问题是:我可以使用 alink 而不是 golink 来构建它吗?如果是,我该怎么做?

非常感谢

【问题讨论】:

    标签: windows assembly linker nasm


    【解决方案1】:

    嗯,是的...但是您可能需要稍微更改您的源...并且您可能需要一个库来链接。 Alink 现在有点“过时”了,尽管它仍然有效。我正在运行 Linux,并且很长时间没有使用 Windows。这些天在做 Windows 的人似乎更喜欢 GoLink。除非您有某些理由更喜欢 Alink,否则我会坚持使用 GoLink。 (一个优点是我们有 Alink 的源代码——我什至可以在 Linux 上运行它!当然不能运行生成的可执行文件......)。如果你真的需要它,我也许可以挖掘出一些过去可以工作的过时代码......但我会坚持使用 GoLink。 (Pelle 的 PoLink 也应该可以工作,可能 MS 的 Link 也可以)。

    【讨论】:

    • 谢谢您的信息。我会试试 Ms 的 Link.exe ,最终我会继续使用 GoLink !谢谢大佬!
    猜你喜欢
    • 2011-03-23
    • 1970-01-01
    • 2021-11-19
    • 2016-05-23
    • 1970-01-01
    • 2011-07-17
    • 2011-03-06
    • 2015-01-13
    相关资源
    最近更新 更多