Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекция по АВСиКС.doc
Скачиваний:
2
Добавлен:
12.11.2019
Размер:
57.86 Кб
Скачать

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 корректно завершает программу.