Variations on Hello, world!

Narue 0 Tallied Votes 277 Views Share

FASM can output an executable PE directly, but sometimes you want to output an object file for linking with modules in other languages. The following program can be used to link with the C library of the GCC compiler with the following commands:

C:\>fasm hello.asm hello.obj
C:\>gcc hello.obj -o hello.exe

It's almost like magic! :)

format MS COFF

include 'C:\fasm\include\win32a.inc'

;======================================
section '.data' data readable writeable
;======================================

hello_msg db 'Hello, world!',0

;=======================================
section '.text' code readable executable
;=======================================

public _main
extrn '_printf' as printf


_main:
	ccall	printf,hello_msg
	xor	eax,eax
	ret