Статус
нашего
сайта:
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

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


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

Если адреса в четырех сегментных регистрах значительно отстоят друг от друга, эти сегменты разделяются, однако в условиях ограниченного объема доступной памяти разделять их не обязательно. Объем программного кода после компиляции неизвестен. Поэтому эффективнее всего размещать начальную границу сегмента данных и стекового сегмента через первое кратное 16 значение

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

Адресация

Для выполнения абсолютного большинства команд требуются данные, которые извлекаются либо из памяти, либо из регистров. Для именования этих данных в 8088 предусмотрено несколько режимов адресации. Многие команды содержат по два операнда, которые в этом случае обычно называются исходным (источник) и целевым (приемник). Возьмем для примера команды копирования и сложения:

MOV АХ.ВХ ADD СХ.20

Первые операнды в этих командах являются приемниками, а вторые — источниками. (Их очередность не принципиальна; она с тем же успехом могла бы быть обратной.) Очевидно, что в таком случае приемник является левым значением, то есть в этом месте должно располагаться перезаписываемое значение. Следовательно, целевые операнды, в отличие от исходных, не могут быть константами.

В первоначальном проектном решении 8088 один из операндов в случае, если в команде их два, обязательно должен был быть регистром. Предполагалось, что это требование позволит различать команды обработки байтов и слов, исходя из того, является ли адресуемый регистр регистром для байтов или для слов. В первой версии процессора это правило соблюдалось с неимоверной строгостью. Невозможно было даже ввести в стек константу, поскольку в таком случае ни в одном из двух операндов команды не было бы ни одного регистра. В последующих версиях ограничения были смягчены, но сам принцип оказал определенное влияние на конструктивное решение процессора. В некоторых случаях один из двух операндов не упоминается. Например, в команде MULB роль приемника может выполнять только регистр АХ.

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

Процессор 8088 поддерживает четыре базовых типа данных: байт, слово (2 байта), длинное слово (4 байта) и двоично-десятичное число, в котором в слово упаковываются 2 десятичные цифры. Последний тип не поддерживается интерпретатором.

Адрес в памяти всегда соответствует байту, но в случае с обычным или длинным словом также присутствует неявное указание на ячейки памяти, находящиеся непосредственно над указанным байтом. К примеру, слово, расположенное по адресу 20, занимает ячейки памяти 20 и 21. Длинное слово по адресу 24 занимает ячейки 24, 25, 26 и 27. Процессор 8088 является системой с обратным

порядком следования байтов (little endian); это означает, что часть слова меньшего порядка хранится по младшему адресу. В стековом сегменте слова должны размещаться по четным адресам. Комбинация АХ DX, где в АХ содержится слово меньшего порядка, является единственно возможным вариантом размещения длинных слов в регистрах процессора 8088.


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

.