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

Л а б о р а т о р н а я р а б о т а 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-файл.

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ: