;===============================================================================
;Program : w32g01
;Version : 0.0.1
;Author : Yeoh HS
;Date : 6 January 2018
;Purpose : a Win32 console program. Use puts from msvcrt.dll
;fasmg : i17sx
;===============================================================================
include 'format/format.inc'
format PE Console
entry start
section '.text' code readable executable
start:
push Message
call [puts]
push 0
call [ExitProcess]
section '.data' data readable writeable
Message db 'fasmg says, "Hello World!"',0
section '.idata' import data readable writeable
dd 0,0,0,RVA kernel_name,RVA kernel_table
dd 0,0,0,RVA msvcrt_name,RVA msvcrt_table
dd 0,0,0,0,0
kernel_table:
ExitProcess dd RVA _ExitProcess
dd 0
msvcrt_table:
puts dd RVA _puts
dd 0
kernel_name db 'Kernel32.dll',0
msvcrt_name db 'msvcrt.dll',0
_ExitProcess dw 0
db 'ExitProcess',0
_puts dw 0
db 'puts',0
section '.reloc' fixups data readable discardable ; needed for Win32s