Создание программы на языке Ассемблера
Создание программы на языке Ассемблера
Путь от идеи к готовой для выполнения программы состоит из
нескольких этапов. В данном разделе рассматриваются этапы создания
программы на языке ассемблера для IBM PC. К обсуждаемым здесь
средствам относятся: строковый редактор, ассмеблер, редактор
связей (компоновщик) и отладчик. С помощью редактора создаются
исходные программы на языке ассемблера. Ассемблер преобразует
исходную программу в объектный код, который очень близок к
машинному языку. Редактор связей трансформирует объектный код в
файл типа .EXE, содержащий программу, которая готова к выполнению.
И наконец, программа-отладчик может оказать помощь в выявлении
ошибок в программе.
СТРОКОВЫЙ РЕДАКТОР ДОС
Редактор строк формирует текстовые файлы. Содержимое текстового
файла представлено в коде ASCII. Редактор позволяет вводить нужный
вам текст в файл. Если затем понадобится изменить файл, то для
этого опять используется редактор.
Редактор строк (EDLIN) входит в состав DOS IBM PC. Файл
EDLIN.COM является внешней командой, т.е. загружается в память
только по запросу. Для запуска редактора должна быть выполнена
следующая команда:
A>EDLIN FILE.ASM
где FILE.ASM - имя текстового файла, с которым будет работать
редактор. Файл FILE.ASM уже может существовать, как в случае, когда
вы вносите изменения в сформированную программу. Если же такого
файла еще нет, то он будет создан с помощью редактора EDLIN. По
окончании редактирования результирующий текст помещается в файл
FILE.ASM. Если в данном редактировании файл не создавался, то
редактор EDLIN выполняет переименование старого варианта файла
FILE.ASM в файл FILE.BAK (backup - копия). Создание копии файла
позволяет с ее помощью устранить любые серьезные ошибки, допущенные
при редактировании файла. Вы ликвидируете файл со внесенными при
редактировании ошибками и переименовываете файл .BAK в файл .ASM.
Таким образом, это служит подстраховкой при редактировании текста.
Редактор EDLIN является редактором строк. Каждую строку текста
он обрабатывает отдельно и этим отличается от экранного редактора,
который выводит на экран целый фрагмент редактируемого текстового
файла. При работе с экранным редактором, таким как Персональный
Редактор (Personal Editor), разработанный фирмой IBM, вы
перемещаете курсор и осуществляете редактирование в любом месте
экрана в то время, как с помошью редактора EDLIN каждый раз
редактируется только одна строчка текста. Если вы собираетесь
основательно заняться программированием на языке ассемблера, то вам
лучше пользоваться экранным редактором. Поставляемый фирмой IBM
Персональный Редактор является очень хорошим экранным редактором
текста. Именно с его помощью были подготовлены все примеры в этой
книге. Редактор EDLIN рассматривается здесь только потому, что он
входит в состав DOS. Однако учмтывая, что это не лучший вариант
редактора, описание редактора EDLIN включает только краткое
упоминание его команд и соответствующий пример. Для того, чтобы
подробней ознакомиться с командами редактора EDLIN, следует
обратиться к руководству по DOS.
На Фиг.5.7 подытожены сведения о командах редактора EDLIN. При
разборе примера мы будеи на них ссылаться.
Действие Синтаксис
--------------------------------------------------------------------------------
Изменение строки [n] A
Уничтожение строки [строка][,строка] D
Редактировать строку [строка]
Конец редактирования E
Вставка строки [строка] I
Просмотр строк [строка][,строка] L
Выход из редактора Q
Замена контекста [строка][,строка] [?] ЗаменяемаяСтрока [<F6>Строка]
Поиск контекста [строка][,строка] [?] СтрокаПоиска
Записать строки [n] W
--------------------------------------------------------------------------------
Фиг. 5.7 Команды EDLIN (Copyright IBM 1981)
Фиг. 5.8 иллюстрирует выполнение двух этапов редактирования
с использованием редактора EDLIN. В первой части редактирования
создается файл с именем FIG5=8.ASM. Сообщение "New file" ("новый
файл") указывает на то, что файла с таким именем до этого не было.
Символом "*" обозначается запрос со стороны редактора EDLIN. Всякий
раз, когда на дисплее появляется этот символ, можно вводить любую
из команд, приведенных на Фиг.5.7. Команда "I" позволяет вводить
текст в файл. По мере ввода текста редактор EDLIN указывает на
экране номера строк. Ввод порции текста завершается нажатием
клавиши Control=Z (на листинге - ^Z). Команда E завершает этап
редактирования, записывает файл и возвращает управление DOS.
На второй части Фиг. 5.8 показано редактирование файла,
созданного в первой чати. Редактор вызывается той же самой
командной строкой, а сообщение "End of input file" ("конец ввода
файла") указывает на то, что данный файл уже существует. Команда L
выводит на экран текущее содержимое файла. В данном примере
вносятся изменения в некоторые строки программы при выполнении
команды редактирования. Если ввести символ "3", то на дисплей будет
A>EGLIN FIG5_8.ASM
New file
*I
1:* PAGE ,132
2:*CODE SEGMENT
3:* ASSUME CS:CODE
4:*
5:*START: PROC NEAR
6:* MOV AX,CODE
8:* MOV DS,AX
8:* RET
9:*START: ENDP
10:*END
11:*^C
*E
A>
A>EDLIN FIG5_8.ASM
End of input file
*L
1:* PAGE ,132
2: CODE SEGMENT
3: ASSUME CS:CODE
4:
5: START PROC NEAR
6: MOV DS,AX
8: MOV DS,AX
8: RET
9: START ENDP
10: END
*3
2:*CODE SEGMENT
2:*CODE SEGMENT,DS:CODE
*5
5:*START: PROC NEAR
5:*START: PROC NEAR
*6
6:* MOV AX,CODE
6:* MOV AX,CS
*9I
9:*
10:*^C
*L
1:* PAGE ,132
2: CODE SEGMENT
3: ASSUME CS:CODE
4:
5: START PROC NEAR
6: MOV DS,AX
8: MOV DS,AX
8: RET
9:
10: START ENDP
11: END
*E
A>
--------------------------------------------
Фиг. 5.8 Пример работы с EDLIN
выведена третья строка, готовая для редактирования. У системы
имеется набор встроенных команд построчного редактирования, которые
приведены на Фиг.5.9. Эти команды редактирования можно использовать
как при работе с редактором EDLIN, как и всегда, когда
осуществляется ввод символов с клавиатуры под управлением DOS, в
частности, при вводе команд, относящизся к командному процессору.
Вернемся к примеру, приведенному на Фиг. 5.8. После того, как
строка с указанным номером выведена на дисплей, ее можно
отредактировать с помощью команд DOS. Клавиша F3 позволяет повторно
вывести строку на дисплей и вносить изменения, начиная с конца
строки. На примере редактирования строки 5 показано использование
клавиша DEL для удаления из поля метки символа ":". При
редактировании строки 6 используется клавиша (курсор вправо) для
установки курсора после ",". Вслед за этим код "CODE" заменяется на
символ "CS". Кроме того, для наглядности текста в данном примере
производится вставка пустой строки перед строчкой 9. После этого
опять выдается листинг файла для того, чтобы были видны внесенные
при редактировании изменения. Команда E - окончание редактирования
- возвращает управление DOS.
----------------------------------------------------------
DEL - Уничтожение следующего символа в хранимой строке
ESC - Отмена редактирования хранимой строки
F1 или -> Копировать символ из хранимой строки
F2 - Копировать все символы до заданного
F3 - Копировать оставшиеся символы на экран
F4 - Пропустить все символы до заданного
F5 - Принять отредактированную строку для продолжения
INS - Вставить символ в строку (отмена - INS повторно)
----------------------------------------------------------
Фиг. 5.9 Клавиши редактирования в DOS
Имеется и ряд других операций, которые можно выполнять с
помощью редактора EDLIN и команж редактирования, вхадящих в DOS.
Лучший способ изучить их - это просмотреть руководство по DOS и
затем все операции попробовать. Однако в случае серьезных
программных разработок лучше обратиться к экранному редактору.