Some languages are hard to get started in. FASM appears to be one of these languages because the documentation is not detailed enough for a beginner. That's a shame because FASM is (in my opinion) one of the better assemblers. The following snippet is a simple Hello, world! program which FASM will directly output an executable on Windows.

The C run-time library is used by accessing the msvcrt DLL, so a linker isn't necessary.

format PE console
entry start

include 'C:\fasm\include\'

section '.data' data readable writeable

hello_msg db 'Hello, world!',0

section '.code' code readable executable

	ccall	[printf],hello_msg
	ccall	[getchar]
	stdcall	[ExitProcess],0

section '.idata' import data readable

library kernel,'kernel32.dll',\

import kernel,\

import msvcrt,\
The article starter has earned a lot of community kudos, and such articles offer a bounty for quality replies.