"П.Нортон "Программно-аппаратная организация компьютера IBM PC"" - читать интересную книгу автораформатов, включающих четырехбайтовый целочисленный формат и три формата с
плавающей запятой: двухбайтный, четырехбайтный и десятибайтный, а также десятичный формат с двадцатью десятичными цифрами. Микропроцессор 8088 непосредственно не использует эти форматы, но если к IBM/PC подключен арифметический сопроцессор 8087, эти форматы становятся как бы расширением набора форматов данных. 3.2. Память, часть 2: что такое адрес Каждая ячейка памяти имеет адрес, который используется для ее нахождения. Адреса - это числа, начиная с нуля для первой ячейки увеличивающиеся по направлению к последней ячейке памяти. Поскольку адреса - это те же числа, компьютер может использовать арифметические операции для вычисления адресов памяти. Архитектура каждого компьютера накладывает собственные ограничения на величину адресов. Наибольший возможный адрес определяет обьем адресного пространства компьютера или то, какой обьем памяти он может использовать. Обычно компьютер использует память меньшего обьема, чем допускается его возможностями адресации. Если архитектура компьютера предусматривает небольшое адресное пространство, это накладывает суровые ограничения на возможности такого компьютера. IBM/PC использует возможности адресации микропроцессора 8088 полностью. Адреса в 8088 имеют длину 20 бит, следовательно, процессор позволяет адресовать два в двадцатой степени байта или 1024 К. ресурсы памяти для специальных целей, что мы увидим в следующем разделе. Перед этим необходимо разобраться в том, как 16-разрядный компьютер работает с 20-разрядными адресами и какие ограничения это может наложить на программы пользователя. Большая часть арифметических операций, которые может выполнять микропроцессор 8088, ограничивается манипуляцией с 16-разрядными числами, что дает диапазон значений от 0 до 65.535 или 64 К. Поскольку полный адрес должен состоять из 20 разрядов, необходимо было разработать способ управления 20 разрядами. Решение было найдено путем использования принципа сегментированной адресации. Если взять 16-ти разрядное число и добавить к нему в конце четыре двоичных нуля, то получится 20-ти разрядное число, которое может использоваться как адрес. Добавлением четырех нулей или сдвиг числа влево на четыре разряда фактически означает умножение числа на 16 и теперь диапазон значений будет составлять 1.024К. К сожалению, число с четырьмя нулями в конце может адресовать только одну из 16 ячеек памяти - ту, адрес которой оканчивается на четыре нуля. Все остальные ячейки, адреса которых оканчиваются на любую из остальных 16 комбинаций из четырех бит, не могут быть адресованы при таком методе адресации. Для окончательного решения проблемы 20-разрядной адресации используются два 16-разрядных числа. Считается, что одно из них имеет еще четыре нуля в конце (выходящие за пределы разрядной сетки). Такое как бы 20-разрядное число называется сегментной частью адреса. Второе шестнадцатиричное число не сдвигается на четыре разряда и используется в |
|
|