Start New Discussion within our Software Development Community

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
The article starter has earned a lot of community kudos, and such articles offer a bounty for quality replies.