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

2.6. Принципы работы Ассемблера

Рассмотрим теперь работу ассемблера в целом. Детали будут обсуждены позднее, но сейчас нам нужно ввести новые термины и ознакомиться с реальным результатом работы ассемблера.

Ассемблер берет программу, написанную на языке ассемблера, и превращает ее в машинный язык. Файл, который содержит программу на языке ассемблера, называют исходным файлом. Выход и ассемблера в действительности является не собственно машинным языком, а некоторым промежуточным представлением программы. Этот выходной файл называют объектным файлом. Данные в нем называются объектным кодом. Для получения из него настоящего машинного кода объектный код должен быть несколько изменен. Для IBM PC это делает программа редактор связей LINK. Шаг преобразования объектных кодов в машинные принято называть построением связей или редактированием связей. Как пользоваться редактором связей мы увидим в одной из следующих глав.

Помимо преобразования исходного кода в объектный ассемблер создает несколько других выходных файлов. Один из них - ассемблерный листинг. Он содержит сообщение о действиях ассемблера. Зтот файл содержит исходный код вместе с комментариями, а также объектный код, сформированный ассемблером. Фиг. 2.9 дает пример листинга ассемблера, иногда называемого распечаткой.

Microsoft (R) Macro Assembler Version 5.00 10/28/88 16:35:34

Фиг. 2.9 Пример ассемблирования Page 1-1

1 PAGE ,132

2 TITLE Фиг. 2.9 Пример ассемблирования

3 0000 CODE SEGMENT

4 ASSUME CS:CODE

5

6 0000 03 C3 PART1: ADD AX,BX ; Сложить с длиной буфера

7

8 0002 CODE ENDS

9   END

Фиг. 2.9 Пример ассемблирования

Взяв пример команды ассемблера, рассмотрим результаты работы ассемблера. В правой части распечатки находятся исходные команды. В левой части - информация, сгенерированная ассемблером. Первая колонка содержит номер каждой строки распечатки. Ассемблер устанавливает эти номера для исходного файла. Они строк не обязательно соотносятся с номерами строк в исходном файле сформированном текстовым редактором.

Во второй колонке содержатся адреса инструкций. Программа LINK может их изменить, но они являются лучшим предположением, которое может сделать ассемблер на шаге ассемблирования. Следующая колонка - код команды на машинном языке. Поскольу команды 8088 имеют длину от 8 до 56 бит, это поле будет изменяться в размере. Кроме того, программа LINK может изменить некоторую информацию в поле объектных кодов. Редактор связей может изменить любую группу команд, оперирующих с адресами. Однако, за исключением адресов, листинг ассемблера дает верные машинные коды, которые и будут в дальнейшем исполняться.

В большинстве примеров программ мы будем использовать листинг ассемблера. Это позволит нам сразу видеть вырабатываемый ассемблером код.

Другой создаваемый ассемблером файл - файл перекрестных сыылок. Этот файл описывает все связи между метками и командами, которые их используют. Такая информация незаменима, когда вы пытаетесь изменить программу. Вы можете воспользовваться перекрестными ссылками для того, чтобы выявить все команды, которые обращаются к определенному участку памяти. Это позволяет программисту определить все команды, на которые может повлиять изменение в другой части программы. Использование информации о перекрестных ссылках будет обсуждаться в главе 5.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]