Меню сайта

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

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

— — — — — Ассемблер берет программу, написанную наязыке ассемблера, и
— — — превращает ее в машинный язык. — Файл, который содержит программу на
— — — языке ассемблера, называют исходнымфайлом. — Выход и ассемблера в
— — — действительности является не собственномашинным языком, а
— — — некоторым промежуточным представлениемпрограммы. — Этот выходной
— — — файл называют объектным файлом. — Данные в нем называются объектным
— — — кодом. -Для получения из него настоящего машинного кода объектный
— — — код должен быть несколько изменен. — — — Для 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.

Категория: Программирование на Ассемблере | Дата: 25.01.13

Меню раздела
Блок