Статус
нашего
сайта:
ICQ Secrets Center is Online  ICQ Information Center


ICQ SHOP
     5-значные
     6-значные
     7-значные
     8-значные
     9-значные
     Rippers List
ОПЛАТА
СТАТЬИ
СЕКРЕТЫ
HELP CENTER
OWNED LIST
РОЗЫСК!New!
ICQ РЕЛИЗЫ
Протоколы ICQ
LOL ;-)
Настройка компьютера
Аватарки
Смайлики
СОФТ
     Mail Checkers
     Bruteforces
     ICQTeam Soft
     8thWonder Soft
     Other Progs
     ICQ Patches
     Miranda ICQ
ФорумАрхив!
ВАШ АККАУНТ
ICQ LiveJournal

Реклама

Наш канал:

irc.icqinfo.ru

Таненбаум Э.- Архитектура компьютера. стр.562


Таненбаум Э.- Архитектура компьютера. стр.562

В ассемблере имеются три секции, в которых хранятся транслируемый код и данные. Разделение на секции соответствует сегментации памяти. Первая секция, секция текста, предназначена для хранения команд процессора. Следующая секция, секция данных, служит для инициализации памяти в сегменте данных, который к началу процесса становится известен. Последняя секция, секция BSS (Block Started by Symbol — блок с начальным символом), нужна для резервирования памяти в неинициализированном (точнее говоря, в инициализированном нулем) сегменте данных. В каждой из трех секций есть собственный счетчик адресов. Секции задумывались для того, чтобы ассемблер мог сгенерировать не сколько команд, затем перейти к данным, затем вернуться к командам, потом снова к данным, и т. д., а компоновщик, в свою очередь, мог скомпоновать все эти блоки так, чтобы все команды оказались вместе в текстовом сегменте, а все слова данных — в сегменте данных. Результат обработки любой отдельно взятой строки на языке ассемблера попадает только в одну из секций, хотя строки кода и строки данных могут чередоваться. В период выполнения секция текста хранится в текстовом сегменте, а секции данных и BSS — последовательно в сегменте данных.

Как команда, так и слово данных в программе на языке ассемблера может начинаться с метки. Метка также может быть единственным содержанием строки, и в этом случае она считается относящейся к следующей команде или слову данных. Пример:

CMP АХ,ABC JE L

MOV AX.XYZ

L:

Здесь L — метка, связанная со следующей командой или словом. Метки бывают двух видов. Во-первых, существуют глобальные метки, представляющие собой буквенно-цифровые идентификаторы, после которых ставится двоеточие (:). Такие метки должны быть уникальными; они не могут совпадать с ключевыми словами и мнемоническими кодами команд. Во-вторых, в секции текста встречаются локальные метки, каждая из которых состоит из одной цифры с последующим двоеточием (:). Локальная метка может устанавливаться многократно. Например:

JE 2f

Эта команда означает операцию перехода JUMP EQUAL вперед до следующей локальной метки 2. Аналогично:

jne 4Ь

Эта команда означает операцию перехода JUMP NOT EQUAL назад к ближайшей локальной метке 4.

Ассемблер допускает присвоение константам символических имен в рамках синтаксической конструкции

идентификатор = выражение

Здесь идентификатор является буквенно-цифровой строкой, как в следующем примере:

BLOCKSIZE = 1024

Во всех идентификаторах в рассматриваемом языке ассемблера значимыми являются только первые восемь символов. Таким образом, идентификаторы BLOCKSIZE, BLOCKSIZZ и BL0CKSIZ идентичны. Выражения могут состоять из констант, численных значений и операторов. Поскольку численные значения меток становятся известными к завершению первого прохода, они приравниваются к константам.

Численные значения могут быть восьмеричными (в таком случае они начинаются с нуля), десятеричными или шестнадцатеричными (начинаются с сим волов ОХ или Ох). В шестнадцатеричном представлении буквы а-£ и А-Б обозначают значения от 10 до 15. Целочисленные операторы +,-,*,/ и % выражают сложение, вычитание, умножение, деление и остаток о деления, соответственно. Логические операторы &, * и ~ обозначают поразрядное И, поразрядное ИЛИ и логическое отрицание (НЕ), соответственно. Для группировки в выражениях могут устанавливаться квадратные скобки. Во избежание путаницы круглые скобки в выражениях не используются (оставлены для задания режимов адресации).


⇐ Предыдущая страница| |Следующая страница ⇒

.