В любом текстовом редакторе создадим текстовый файл программы с расширением *.asm (вполне подойдет для этой цели встроенный редактор Norton Commander, вызываемый по клавише shift+F4).
Программа в exe-формате должна содержать сегмент стека, сегмент данных и сегмент кода.
1) Определим сегмент стека. Так как наша программа невелика, следовательно, и стек в ней может быть небольшой.
_STACK SEGMENT 'STACK' ; объявление сегмента стека
DB 32 DUP ('ST') ;стек размером 64 байта (32 повторения 2-х символов ST)
_STACK ENDS ; закрываем описание сегмента стека _STACK
2) Сегмент данных для нашей программы не нужен, т.к. операндами являются регистры и константа 0.
3) Определим сегмент кода. В сегмент кода включаются команды программы на языке Ассемблер, поэтому до этого этапа необходимо изучить команды языка Ассемблера.
_CODE SEGMENT ; Объявление сегмента кода
ASSUME SS:_STACK, CS:_CODE ; Ассоциируем сегменты и сегментные регистры
OUR_PROG PROC FAR ; описываем нашу программу как процедуру
;OUR_PROG помещаем в стек такие начальные значения, чтобы
; программа могла по завершению возвратить управление вызвавшей
; ее программе (например ОС)
PUSH DS ; поместить в регистр номер блока адреса возврата
MOV AX,0 ; обнулить регистр AX
PUSH AX ; поместить в стек нулевое смещение адреса возврата
; инициализируем адрес сегмента данных
MOV AX,_DATA ;
MOV DS,AX ; загрузка через AX указателя сегмента данных в DS
m1: MOV AX,0 ; обнуляем регистры микропроцессора по порядку