Windows 如何在Win10中使用link.exe从NASM链接obj文件

Windows 如何在Win10中使用link.exe从NASM链接obj文件,windows,assembly,nasm,Windows,Assembly,Nasm,我在NASM中有以下代码: ;sleep.asm [SECTION .text] global _start _start: xor eax,eax mov ebx, 0x00016630 ;address of Sleep mov ax, 5000 ;pause for 5000ms push eax call ebx ;Sleep(ms); 其中0x0001630是休眠函数的地址(取自kernel32.dll中的du

我在NASM中有以下代码:

;sleep.asm
[SECTION .text]

global _start


_start:
    xor eax,eax
    mov ebx, 0x00016630 ;address of Sleep
    mov ax, 5000        ;pause for 5000ms
    push eax
    call ebx        ;Sleep(ms);
其中0x0001630是休眠函数的地址(取自kernel32.dll中的dumpbin)

我想让可执行文件在Win10中运行。我所做的是:

nasm -f win32 sleep.asm
结果是
sleep.obj

所以现在我必须把它联系起来。我使用以下命令选择link.exe

link sleep.obj /entry:_start /subsystem:windows /nodefaultlib
Microsoft (R) Incremental Linker Version 14.00.24215.1
Copyright (C) Microsoft Corporation.  All rights reserved.

LINK : error LNK2001: unresolved external symbol __start
sleep.exe : fatal error LNK1120: 1 unresolved externals

有人能帮你解决这个问题吗?

链接器会自动为你在命令行中通过
/entry
传递的任何内容预加下划线。请尝试以下方法:

link sleep.obj /entry:start /subsystem:windows /nodefaultlib

如果您使用
/entry:start
,可能会重复什么?谢谢大家,这是解决方案(下划线的东西)。如果解决了您的问题,请随意接受答案。;)