0

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

我正在使用 nasm 并转到链接。这个你好世界似乎工作正常:

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 来构建它吗?如果是,我该怎么做?

非常感谢

4

1 回答 1

0

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

于 2013-01-06T20:47:03.103 回答