Программа, написанная на языке ассемблера FASM, состоит из строк, имеющих следующий вид:
метка инструкция операнд коментарий
Все составные части строки не являются обязательными и могут отсутствовать в строке. В том числе срока может быть и пустой. Единственным ограничением является то, что согласно синтаксису FASM операнд не может использоваться без инструкции и, поэтому, отдельно операнд может располагатся только в подстроке, которой обязательно должна предшедствовать подстрока с инструкцией.
Синтаксис FASM предполагает, что инструкция и операнд обязательно должны быть разделены не менее, чем одним символом пробела или табуляции. После метки (если она оканчивается двоеточием) и перед коментарием вставлять символы-разделители не обязятельно, поскольку в этих случаях после метки разделителем служит символ ":" или символ ";" перед коментарием.
Метка, инструкция, операнд и коментарий не имеют стого заданного положения в строке и программист может располагать их в любом удобном ему месте. Обязательным является только порядок их следования. Но для улучшения удобства чтения текста программы каждую из составных частей строк рекомедуется записывать в колонку. Например:
mov eax, 0x3F2C
;EAX = идентификатор
call CreateObject ;Создать объект
test eax, eax
;Проверить наличие ошибки
jz ErorObjtct
;Перейти, если ошибка
Каждая инструкция в языке FASM должна располагаться в одной строке. Если же строка очень длинная, то синтаксис FASM разрешает разделять ее на несколько подстрок с помощью символа "\". При этом нужно обратить внимание на то, что в текущей подстроке после символа разделения строки можно размещать только комментарий. Например:
invoke CreateWindowEx,\
;Создать главное окно
cnStyleEx,\
;расширенные стили
szMnFormClass,\
;имя класса
szMnFormTitle,\
;заголовок окна
cnStyle,\
;стили
128,\
;положение по горизонтали
96,\
;положение по вертикали
720,\
;ширина
560,\
;высота
NULL,\
;нет родительского окна
NULL,\
;нет меню
[hApp],\
;дескриптор программы
NULL
;нет дополнительных параметров