Числа со смещенным порядком
Для упрощения операций над порядками их сводят к действиям над целыми положительными числами. Для чего используют представления чисел со смещённым порядком. При записи числа к его порядку прибавляется целое число N – смещение. При этом N = 2 k, где k – количество разрядов для изображения порядка. Таким образом получаем смещённый порядок Р` = Р + N (рисунок 2.3).
Если количество разрядов порядка равно 6, то N = 64, и смещенный порядок Р` будет принимать значения от Р` = 127 (при Р = 63), до Р`= 0 (при Р = - 64).
знак смещённый порядок модуль мантиссы
Р` | M |
63 62 52 51 (а) 0
знак смещённый порядок модуль мантиссы
P` | M |
79 78 64 63 (б) 0
Рисунок 2.3 − Представление числа с плавающей точкой:
а) формат короткого слова; в) формат длинного слова
Типы данных 32 − разрядных ЭВМ
Современные процессоры непосредственно поддерживают (используют в качестве операндов) знаковые и беззнаковые целые числа, строки байт, строки цифр и символов, битовые строки и числа с плавающей точкой. Слова записываются в двух смежных байтах, и адресом слова является адрес его младшего байта. Двойные слова расположены в четырёх смежных байтах, начиная с младшего, адрес которого есть адрес двойного слова. В некоторых других процессорах применяют и обратный порядок. На рисунке 2.4 представлены форматы данных, обрабатываемые 32−разрядными процессорами, ниже приведены типы данных, используемые CPU ЭВМ.
Форматы данных CPU
§ Бит (Bit) – единица информации. Бит в памяти задается базой (адресом слова) и смещением (номером бита в слове).
§ Битовое поле (Bit Field) – группа до 32 смежных бит, располагающихся не более чем в 4 байтах.
§ Битовая строка (Bit String) –набор смежных бит длиной до 4 Гбит.
§ Байт (Byte) –8 бит.
§ Числа без знака: байт/слово/двойное/учетверенное слово (Unsigned Byte/ Word/Double Word/Quade Word), 8/16/32/64 бит.
§ Целые числа со знаком: байт/слово/двойное/учетверенное слово (Integer Byte/ Word/Double Word/Quade Word). Единичное значение самого старшего бита (знак) является признаком отрицательного числа, которое хранится в дополнительном коде.
- Двоично-десятичные числа (BCD — Binary Coded Decimal):
a) 8-разрядные упакованные (Packed BCD), содержащие два десятичных разряда в одном байте;
b) 8-разрядные неупакованные (Unpacked BCD), содержащие один десятичный разряд в байте.
- Строки байт, слов и двойных слов (Bit String, Byte String, Word String, Double Ward String) длиной до 4 Гбайт.
- Указатели:
a) длинный указатель (48 бит) – 16-битный селектор (или сегмент) и 32-битное смещение;
b) короткий указатель – 32-битное смещение;
c) просто указатель–16-битный селектор и 16-битное смещение.
16-разрядные процессоры не поддерживают учетверенные слова всех типов, битовые поля и строки, строки двойных слов.
один бит
1. Байт без знака (8 бит) |
знак
2. Байт со знаком (8 бит) |
7 0 7 0 7 0
3.Строка байт | N-й байт | ∙ ∙ ∙ ∙ | 1-й байт | 0-й байт |
15 8 7 0
4. Слово без знака (два байта) | 1-й байт | 0-й байт |
знак 15 8 7 0
5. Слово со знаком (два байта) | 1-й байт | 0-й байт |
15 0 15 0 15 0
6. Строка слов | N-е слово | ∙ ∙ ∙ ∙ | 1-е слово | 0-е слово |
31 24 16 15 7 0
7. Двойное слово без знака | 3-й байт | 2-й байт | 1-й байт | 0-й байт |
знак 31 24 16 15 7 0
8. Двойное слово cо знаком | 3-й байт | 2-й байт | 1-й байт | 0-й байт |
31 0 31 0 31 0
9. Строка двойных слов | N-е слово | ∙ ∙ ∙ | 1-е слово | 0-е слово |
10. Учетверённое слово без знака:
63 48 47 32 31 16 15 8 7 0
11. Учетверённое слово со знаком:
63 48 47 32 31 16 15 8 7 0
знак
Рисунок 2.4− Форматы целых данных 32−разрядных процессоров.
Форматы данных FPU
Числа в формате с плавающей точкой и упакованные 80-битные BCD-числа обрабатываются блоками FPU процессоров класса 486 и выше, а также сопроцессорами 8087/287/387. BCD числа (Binary Coded Decimal) – это двоично- десятичное числа, в которых каждая десятичная цифра записана четырех битовым двоичным кодом. Упакованные 64-битные и 128-битные данные обрабатываются процессорами с ММХ и SSE. Ниже перечислены форматы данных, обрабатываемых блоками FPU/MMX и ХММ.
- Действительные числа в формате с плавающей точкой:
a) одинарной точности (Single Precision), 32 бит — 23 бит мантисса, 8 бит порядок;
b) двойной точности (Double Precision), 64 бит — 52 бит мантисса, 11 бит порядок;
c) повышенной точности (Extended Precision), 80 бит — 64 бит мантисса, 15 бит порядок.
- Упакованные двоично−десятичные 80−битные числа (18 десятичных разрядов и знак).
- Упакованные действительные числа одинарной точности, в формате с плавающей точкой.
- Упакованные целые числа, знаковые и беззнаковые:
a) упакованные байты − восемь байт;
b) упакованные слова − четыре слова;
c) упакованные двойные слова − два двойных слова;
d) учетверенное слово − одно слово.
Форматы некоторых из перечисленных данных приведены на рисунке 2.5.
§ Упакованные целые числа (обрабатываются блоком ММХ):
56 55 48 47 40 39 3 2 31 24 23 16 15 8 7 0
Число 7 | Число 6 | Число 5 | Число 4 | Число 3 | Число 2 | Число 1 | Число 0 |
a) упакованные байты (восемь байт);
63 48 47 32 31 16 15 0
Число 3 | Число 2 | Число 1 | Число 0 |
b) упакованные слова (четыре слова);
63 32 31 0
Число 1 | Число 0 |
c) упакованные двойные слова (для ММХ);
63 0
Число |
d) учетверенное слово.
§ Действительные числа в формате с плавающей точкой:
31 30 23 22 0
Порядок | Мантисса (дробная часть) |
a) одинарной точности;
Знак порядка
63 62 52 51 0
Порядок | Мантисса (дробная часть) |
b) двойной точности;
Знак порядка
79 78 64 63 0
Порядок | Мантисса (дробная часть) |
c) повышенной точности
Знак порядка
127 96 95 64 63 32 31 23 22 0
Пор. | Мантисса | Пор. | Мантисса | Пор. | Мантисса | Порядок | Мантисса |
знаки порядков
d) упакованные числа с плавающей точкой одинарной точности.
Рисунок 2.5− Форматы данных обрабатываемые процессорным блоком FPU/MMX и XMM
В зависимости от разрядности регистров процессора, в них размещаются числа различного диапазона. В таблице 2.4 представлены значения чисел, в естественной форме, которые можно разместить в регистрах процессора.
Таблица 2.4− Диапазоны чисел, обрабатываемые процессорами
Размер регистра | Наличие знака | Диапазон данных | |
Десятичные | Шестнадцатиричные | ||
нет | 0 ÷ 255 | 00 ÷ FFH | |
да | - 128 ÷ + 127 | 80H ÷ 7FH | |
нет | 0 ÷ 65535 | 0000H ÷ FFFFH | |
да | -32768 ÷ + 32767 | 8000H ÷ 7FFFH | |
нет | 0 ÷ 4294967295 | 00000000H ÷ FFFFFFFFH | |
да | - 2147483648 ÷ + 2147483647 | 80000000 ÷ 7FFFFFFFH | |
нет | 0000000000000000H ÷ FFFFFFFFFFFFFFFFH | ||
да | -9223372036854775808 ÷ | 8000000000000000 ÷ 7FFFFFFFFFFFFFFFH |
Дата добавления: 2016-02-24; просмотров: 2841;