
- •Ассемблирование и выполнение программы
- •1. Ввод программы
- •2. Ассемблирование программы.
- •3. Компоновка программы.
- •4. Выполнение программы.
- •5. Ввод, ассемблирование, компоновка, выполнение и анализ листинга исходной программы.
- •0004 В8 ----r mov ax,datasg
- •6. Создание exe-файла.
- •7. Получение com-файла.
Л а б о р а т о р н а я р а б о т а N 2
Ассемблирование и выполнение программы
МЕТОДИЧЕСКИЕ УКАЗАНИЯ:
1. Для выполнения лабораторной работы вы должны войти в каталог группы из панели NORTON. Каждый студент должен иметь в каталоге группы свой личный каталог. Все программы должны создаваться и записываться в личном каталоге студента.
2. Ассемблер преобразует исходную программу в OBJ-файл, а компоновщик - OBJ-файл в загрузочный ЕХЕ-файл.
3. После ввода на диск исходной программы под именем EXASM1.ASM необходимо проделать два основных шага, прежде чем программу можно будет выполнить. Сначала необходимо ассемблировать программу, а затем выполнить компоновку.
4. Шаг ассемблирования включает в себя трансляцию исходного кода в машинный объектный код и генерацию OBJ-модуля. Возможно, потребуется указание LST-файла, если необходимо проверить сгенерированный машинный код. Также можно получить CRF-файл, который полезен для очень больших программ, где необходимо видеть, какие команды ссылаются на какие поля данных. Кроме того, ассемблер ге-
нерирует в LST-файле номера строк, которые используются в CRF-файле.
5. Ассемблер преобразует исходные команды в машинный код и выдает на экран сообщения о возможных ошибках. Типичными ошибками являются нарушения ассемблерных соглашений по именам, неправильное написание команд, а также наличие в операндах неопределенных имен.
6.Формат OBJ-модуля уже более приближен к исполнительной форме, но еще не готов к выполнению. Шаг компоновки включает преобразование OBJ-модуля в ЕХЕ (исполнимый) модуль, содержащий машинный код. Программа tlink.exe осуществляет следующее:
- завершает формирование в OBJ-модуле адресов, которые остались неопределенными после ассемблирования. Во многих программах такие адреса ассемблер отмечает как ----R.
- компонует, если необходимо, более одного отдельно ассемблированного модуля в одну загрузочную (выполнимую) программу. Это, возможно, две или более ассемблерных программ или ассемблерная программа и программы, написанные на языках высокого уровня.
- инициализирует ЕХЕ-модуль командами загрузки для выполнения.
7. После компоновки OBJ-модуля (одного или более) в ЕХЕ-модуль можно выполнить ЕХЕ-модуль любое число раз. Но, если необходимо внести некоторые изменения в ЕХЕ-модуль, следует скорректировать исходную программу, ассемблировать ее в другой модуль. Даже если эти шаги остаются непонятными, вы обнаружите, что, приобретая некоторые навыки, весь процесс подготовки ЕХЕ-модуля можно будет довести до автоматизма.
8. Для получения COM-файлов необходимо написание программы в текстовом редакторе в несколько другой форме. Сегмент стека в COM-файле не определяется, COM-программа генерирует стек автоматически, а все данные определяются не в сегменте данных, а в сегменте кодов.
9. После написания программы в текстовом редакторе с помощью программы tasm.exe необходимо получить OBJ-файл. Далее с помощью программы tlink.exe получают требуемый COM-файл.
10. В COM-программе сегмент стека и сегмент данных не определены. Поэтому в COM-программах резервируется 256-байтовый блок памяти (100Н). Так как адресация начинается со смещения 100Н от начала PSP (префикс программного сегмента), то в программе после директивы ASSUME должна быть команда ORG 100H.
11. Объем COM-файла ограничен 64 Кбайт.
12. Файл в COM-формате меньше, чем соответствующий EXE-файл.
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ: