36 lines
823 B
NASM
36 lines
823 B
NASM
![]() |
; ---------------------------------------------
|
||
|
; Hello World for Win32 Intel x86 Assembly
|
||
|
;
|
||
|
; by fruel (https://github.com/fruel)
|
||
|
; 13 June 2016
|
||
|
; ---------------------------------------------
|
||
|
|
||
|
.386
|
||
|
.model flat,stdcall
|
||
|
.stack 4096
|
||
|
|
||
|
EXTRN ExitProcess@4 : PROC
|
||
|
EXTRN GetStdHandle@4 : PROC
|
||
|
EXTRN WriteConsoleA@20 : PROC
|
||
|
|
||
|
.data
|
||
|
msg BYTE "Hello World!",0
|
||
|
bytesWritten DWORD ?
|
||
|
|
||
|
.code
|
||
|
main PROC
|
||
|
push -11 ; nStdHandle (STD_OUTPUT_HANDLE)
|
||
|
call GetStdHandle@4
|
||
|
|
||
|
push 0 ; lpReserved
|
||
|
push OFFSET bytesWritten ; lpNumberOfCharsWritten
|
||
|
push LENGTHOF msg - 1 ; nNumberOfCharsToWrite
|
||
|
push OFFSET msg ; *lpBuffer
|
||
|
push eax ; hConsoleOutput
|
||
|
call WriteConsoleA@20
|
||
|
|
||
|
push 0 ; uExitCode
|
||
|
call ExitProcess@4
|
||
|
main ENDP
|
||
|
END main
|