На главную Назад
Добро пожаловать, уважаемый посетитель!

Рассмотрим теперь работу ассемблера в целом.Детали будут

обсуждены позднее, но сейчас нам нужно ввести новые термины и

ознакомиться с реальным результатом работы ассемблера.

 

Ассемблер берет программу, написанную на языке ассемблера, и

превращает ее в машинный язык.Файл, который содержит программу на

языке ассемблера, называют исходным файлом.Выход и ассемблера в

действительности является не собственно машинным языком, а

некоторым промежуточным представлением программы.Этот выходной

файл называют объектным файлом.Данные в нем называются объектным

кодом.Для получения из него настоящего машинного кода объектный

код должен быть несколько изменен.Для IBM PC это делает программа

редактор связей LINK.Шаг преобразования объектных кодов в

машинные принято называть построением связей или редактированием

связей.Как пользоваться редактором связей мы увидим в одной из

следующих глав.

 

Помимо преобразования исходного кода в объектный ассемблер

создает несколько других выходных файлов.Один из них -

ассемблерный листинг.Он содержит сообщение о действиях

ассемблера.Зтот файл содержит исходный код вместе с

комментариями, а также объектный код, сформированный ассемблером.

Фиг.2.9 дает пример листинга ассемблера, иногда называемого

распечаткой.

Microsoft (R) Macro Assembler Version 5.00 10/28/88

16:35:34

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

 

 

1PAGE,132

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

3 0000CODESEGMENT

4ASSUMECS:CODE

5

6 000003 C3PART1:ADDAX,BX; Сложить с длиной буфера

7

8 0002CODEENDS

9END

 

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

 

Взяв пример команды ассемблера, рассмотрим результаты работы

ассемблера.В правой части распечатки находятся исходные команды.

В левой части - информация, сгенерированная ассемблером.Первая

колонка содержит номер каждой строки распечатки.Ассемблер

устанавливает эти номера для исходного файла.Они строк не

обязательно соотносятся с номерами строк в исходном файле

сформированном текстовым редактором.

 

Во второй колонке содержатся адреса инструкций.Программа LINK

может их изменить, но они являются лучшим предположением, которое

может сделать ассемблер на шаге ассемблирования.Следующая колонка

- код команды на машинном языке.Поскольу команды 8088 имеют длину

от 8 до 56 бит, это поле будет изменяться в размере.Кроме того,

программа LINK может изменить некоторую информацию в поле объектных

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

оперирующих с адресами.Однако, за исключением адресов, листинг

ассемблера дает верные машинные коды, которые и будут в дальнейшем

исполняться.

 

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

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

ром код.

 

Другой создаваемый ассемблером файл - файл перекрестных сыылок.

Этот файл описывает все связи между метками и командами, которые их

используют.Такая информация незаменима, когда вы пытаетесь

изменить программу.Вы можете воспользовваться перекрестными

ссылками для того, чтобы выявить все команды, которые обращаются к

определенному участку памяти.Это позволяет программисту

определить все команды, на которые может повлиять изменение в

другой чассти программы.Использование информации о перекрестных

ссылках будет обсуждаться в главе 5.


 

Mail.ru