![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Для позиционных систем счисления и большинства последовательностей символов существенно их взаимное расположение. В этих случаях можно говорить о старших и младших разрядах объекта.
В пределах одного объекта (байта, слова, строки байт) старшинство битов определяется их расположением слева направо (старший бит в объекте – левый). Но нумерация бит в байте, бит и байт в слове и в других многобайтовых объектах в различных вычислительных системах может быть различной.
Нумерация бит и байт может производиться или со старших разрядов, или с младших разрядов (рис. 2.2).
Нумерация бит и байт со старших разрядов (рис. 2.2a)
В позиционных системах счисления разряд с наибольшим весом располагается слева, и число читается слева направо. Многобайтовые объекты в памяти, как правило, задаются адресом байта с наименьшим номером. Таким образом, при побайтовой выборке из памяти данные поступают в естественном порядке чтения. Но при этом возрастание весов разрядов противоположно возрастанию их номеров.
Номера байт | |||||||||||||||||||||||
0 7 | Номера бит | ||||||||||||||||||||||
Байт | Байт | ||||||||||||||||||||||
0 7 | 8 15 | Номера бит | |||||||||||||||||||||
Старший байт | Младший байт | Слово | |||||||||||||||||||||
0 7 | 8 15 | 16 23 | 24 31 | Номера бит | |||||||||||||||||||
Старший байт | Младший байт | Двойное слово | |||||||||||||||||||||
а) нумерация бит и байт со старших разрядов к младшим | |||||||||||||||||||||||
Номера байт | |||||||||||||||||||||||
![]() | 7 0 | Номера бит | |||||||||||||||||||||
Байт | Байт | ||||||||||||||||||||||
15 8 | 7 0 | Номера бит | |||||||||||||||||||||
Старший байт | Младший байт | Слово | |||||||||||||||||||||
31 24 | 23 16 | 15 8 | 7 0 | Номера бит | |||||||||||||||||||
Старший байт | Младший байт | Двойное слово | |||||||||||||||||||||
b) нумерация бит и байт с младших разрядов к старшим | |||||||||||||||||||||||
Рис.2.2. Структуры данных и нумерации бит и байт. | |||||||||||||||||||||||
Нумерация бит и байт с младших разрядов (рис. 2.2 b)
При использовании нумерации бит и байт в многобайтном слове с младших разрядов, при последовательном выборе из памяти объекты на обработку поступают с младших байт и младшими разрядами "вперед". Это нумерация с младших разрядов. Распространение такой нумерации началось с появлением и микропроцессоров. При последовательной (бит за битом) обработке цифровых данных для простейших арифметических операций (сложение/вычитание) это обеспечивало выигрыш в аппаратных средствах. Кроме того, при такой нумерации возрастание номеров бит совпадает с возрастанием их разрядных весов.
Нумерация байт в многобайтных полях с младших байтов сопряжена и с рядом проблем. Одна из проблем связана с передачей в регистр содержимого памяти, возможно состоящего из независимых числовых полей с различным количеством байт.
В этих случаях многобайтное поле загрузится байтами, начиная от младшего байта (с меньшими весами разрядов) к старшему (с большими весами разрядами). Для использования этих (числовых) полей потребуется переупорядочение байт.
Для примера рассмотрим запись двухбайтовых слов (рис. 2.3.). В этом примере в словарной памяти записана строка начальных символов английского алфавита в виде последовательности двухбайтовых объектов – слов (по два символа в слове). При переносе последовательности символов из памяти с нумерацией с младших разрядов в регистр с нумерацией со старших разрядов происходит перестановка байт в каждом слове.
Адреса слов | Старшие байты в слове | Младшие байты в слове | ||||||
Нечетные адреса байтов | Содержимое байтов | Четные адреса байтов | Содержимое байтов | |||||
a | b | Слово ab | ||||||
c | d | Слово cd | ||||||
Структуры словарной памяти с нумерацией байт с младших разрядов | ||||||||
Адреса байт | ||||||||
b | a | d | c | |||||
Многобайтовый регистр | ||||||||
Рис 2.3. Пример передачи могобайтового поля из памяти с нумерацией с младших разрядов в регистр с нумерацией со старших разрядов | ||||||||
При переносе последовательности символов из памяти с нумерацией с младших разрядов в регистр с нумерацией со старших разрядов также происходит перестановка, но уже слов в каждом двойном слове (рис.2.4.).
Адреса слов | Старшие байты в слове | Младшие байты в слове | |||||||
Нечетные адреса байтов | Содержимое байтов | Четные адреса байтов | Содержимое байтов | ||||||
a | b | Слово ab | |||||||
c | d | Слово cd | |||||||
Структуры словарной памяти с нумерацией байт с младших разрядов | |||||||||
Адреса байт | |||||||||
c | d | a | b | ||||||
Многобайтовый регистр | |||||||||
Рис 2.3. Пример передачи могобайтового поля из памяти с нумерацией с младших разрядов в регистр с нумерацией со старших разрядов | |||||||||
Для использования положительных сторон представленных нумераций в некоторых системах используется программное управление процессом обмена данными между памятью и регистрами.
Например, в архитектуре PA-RISC корпорации HP (Hewlett Packard) предусмотрен такой программно управляемый обмен данными. Упорядочение байтов (к старшим или к младшим адресам) при записи и чтении определяется битом E в слове состояния процессора (PSW).
При Е = 0 загрузка многобайтного объекта упорядочивается, по терминологии фирмы, "к старшим адресам". При этом младший байт в памяти соответствует старшему байту в регистре (левая нумерация).
При Е = 1 загрузка многобайтного объекта упорядочивается "к младшим адресам". При этом младший байт в памяти соответствует младшему байту в регистре (правая нумерация).
Для этой же цели в МП Intel (начиная с 486) используется команда SWAP перестановки байт в регистре. Команда переставляет байты в четырех байтном регистре (первый байт с четвертым и второй байт с третьим).
Вопросы для самопроверки:
1. Адресная память.
2. Ассоциативная память.
3. Стековая память.
4. Использование в МП Intel регистра EBP – указателя базы (кадра) стека.
5. Математическая память.
6. Сегментированная память.
7. Функции диспетчера памяти.
8. Основные адресные пространства ЭВМ.
9. Байтовая ориентация памяти.
10. Расположение программного объекта в целочисленных границах.
11. Основные проблемы расположения программных объектов в нецелочисленных границах.
12. Адресация многобайтовых объектов в памяти.
13. Основные преимущества обратной нумерации байт в многобайтных программных объектах.
14. Основные недостатки обратной нумерации байт в многобайтных программных объектах.
Дата публикования: 2014-11-03; Прочитано: 645 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!