Я хотел бы принять более одного ответа. Спасибо, ваш ответ был очень полезным.
пример кода вэто введениекак показано ниже:
; Sample x64 Assembly Program
; Chris Lomont 2009 www.lomont.org
extrn ExitProcess: PROC ; external functions in system libraries
extrn MessageBoxA: PROC
.data
caption db '64-bit hello!', 0
message db 'Hello World!', 0
.code
Start PROC
sub rsp,28h ; shadow space, aligns stack
mov rcx, 0 ; hWnd = HWND_DESKTOP
lea rdx, message ; LPCSTR lpText
lea r8, caption ; LPCSTR lpCaption
mov r9d, 0 ; uType = MB_OK
call MessageBoxA ; call MessageBox API function
mov ecx, eax ; uExitCode = MessageBox(...)
call ExitProcess
Start ENDP
End
Код выше находится внутриhello.asm
а в Windows его можно скомпилировать с помощью:
ml64 hello.asm /link /subsystem:windows /defaultlib:kernel32.lib /defaultlib:user32.lib /entry:Start
У меня нет доступа к Windows и MASM, так как я нахожусь на Linux и работаю с NASM. Я думаю, что если я скомпилирую код в Linux, я смогу запустить его сWine
, Но, тем не менее, я не мог понять, как скомпилировать его с помощью NASM в Linux, а также не могу понять, какие варианты NASM эквивалентны параметрам MASM. Кто-нибудь может мне помочь?