- •§ 14. Процесс разработки программы в макроассемблере
- •14.1. Структура программ на ассемблере masm
- •14.2. Директивы сегментации
- •14.3. Директивы резервирования и инициализации данных
- •14.4. О программировании процедур работы с устройствами ввода – вывода
- •14.5. Пакет masm
- •14.6. Процесс разработки программы
14.6. Процесс разработки программы
Выделяются четыре этапа разработки программы на ассемблере.
1. Ввод исходного текста программы, используя любой текстовый редактор (Word, NE, Brief, Xedit, Lexicon и т. д,), оформляется в виде файла с расширением .ASM.
2. Создание исходного модуля. Для его создания необходимо транслировать программу, набранную в текстовом редакторе. В результате будут созданы объектный файл, файл листинга и файл перекрестных ссылок, имена которых должны совпадать с исходным файлом.
Чтобы скомпилировать объектный файл, необходимо запустить программу FAR и в командной строке ввести
ml /c имя_файла.
В результате скомпилируется файл с расширением .obj.
3. Создание загрузочного модуля. После устранения ошибок и получения загрузочного модуля необходимо перейти к компоновке программы. На этом этапе происходит объединение всех модулей, написанных на одном и том же или разных языках. Результатом компоновки является создание загрузочного файла с расширением .exe. В командной строке необходимо ввести
Link имя_файла.obj.
4. Отладка программы. На этом этапе происходит проверка правильности функционирования как отдельных фрагментов кода, так и программы в целом, то есть тестирование программы. Отладку исполняемой программы удобно выполнять с помощью отладчика DEBUG. В командной строке необходимо ввести
debug.exe имя_файла (расширение .exe).
Пример:
.model small
.stack 100h
.code
start: mov AX,@data
mov DS,AX
mov DX,offset message
mov ah,9
int 21h
mov AX,4c00h
int 21h
ret
.data
message db "hello",0dh,0ah,'$'
end start
Для превращения программы в исполняемый файл необходимо выполнить три разработки программы на ассемблере. В результате мы получим файл с расширением .exe.
Рассмотрим основной текст программы, чтобы понять, как она работает. Модель памяти SMALL предназначена для создания EXE – программ. Определяются три сегмента – сегмент стека директивой .STACK размером 256 байт; сегмент кода начинается с директивы .CODE и сегмент данных начинается с директивы .DATA. Метка START располагается перед первой командой в программе и будет использоваться в директиве END.Команда mov AX,@data загружает в AX сегментный адрес группы сегментов данных @data, а строка mov DS,AX копирует его в DS. Команда mov ah,09h помещает число 9 в регистр AH- номер процедуры DOS «вывод строки». Команда mov dx,offset message помещает в регистр DX смещение метки message относительно начала сегмента (в примере он совпадает с сегментом кода). Команда INT 21h вызывает системную процедуру DOS вывода строки посимвольно. Команда RET корректно завершает программу.