- •Архитектура эвм
- •Введение
- •Структура мпс
- •Основные понятия в архитектуре мпс
- •Архитектура фон Неймана
- •Гарвардская архитектура
- •Параллельная архитектура
- •Конвейерная архитектура
- •Суперскалярная архитектура
- •АрхитектурыCisc
- •Архитектуры risc
- •Архитектуры misc
- •Ассемблеры
- •Программа Ассемблер
- •Язык Ассемблер
- •Основы 32-битного программирования в Windows
- •Api функции
- •Сообщения Windows
- •Версии ассемблеров
- •Среды разработки
- •Представление данных в эвм
- •Системы счисления и преобразования между ними
- •Форматы представления чисел
- •Форматы представления двоичных чисел
- •Формат с плавающей точкой
- •Типы адресаций операндов
- •Интерфейсы
- •Последовательный интерфейс rs-232c
- •Интерфейс параллельного порта
- •Инфракрасный интерфейс
- •Интерфейс Bluetooth
- •Интерфейс usb
- •Интерфейс ieee 1394 - FireWire
- •Сопроцессоры
- •Система прерываний и исключений
- •Интерфейс jtag
- •Символы и строки
- •Архитектура cisc от Intel
- •Введение
- •Микроархитектура Intel
- •Микроархитектура р6
- •Микроархитектура NetBurst
- •Микроархитектура Pentium 4
- •Микроархитектура Intel Pentium Mobile
- •Микроархитектура Intel Core
- •Микроархитектура Intel Core Duo
- •Микроархитектура Intel Nehalem
- •Адресация памяти в ia_32
- •Наборырегистров
- •Целочисленныйпроцессор
- •Регистры общего назначения (рон)
- •Регистры флагов eflags
- •Регистр указателя команд
- •Сегментные регистры
- •Управляющие регистры
- •Системные адресные регистры
- •Прямой и обратный порядок следования байтов
- •Виды адресации операндов в памяти
- •Цикл выполнения команды
- •Распределение адресного простраства
- •Образ программы в памяти.
- •Математический сопроцессор
- •Xmm технология
- •Система команд
- •Формат команды
- •Классификация команд
- •Целочисленный процессор
- •Команды общего назначения
- •Команды ввода-вывода
- •Инструкции работы со стеком
- •Арифметико-логические инструкции
- •Цепочечные операции
- •Команды управления
- •Команды поддержки языков высокого уровня
- •Команды прерываний
- •Команды синхронизации процессора
- •Команды обработки цепочки бит
- •Команды управления защитой
- •Команды обмена с управляющими регистрами
- •Команды идентификации и управления архитектурой
- •Управление кэшированием
- •Команды управления кэшированием
- •Сопроцессор с плавающей точкой
- •Классификация команд
- •Команды управления сопроцессором
- •Команды передачи данных
- •Команды сравнения данных
- •Арифметические команды
- •Трансцендентные функции
- •Целочисленное mmx расширение
- •Синтаксис ммх-команд
- •Классификация команд
- •Инициализация
- •Передача данных
- •Упаковка данных
- •Распаковка данных
- •Арифметика
- •Сравнения
- •Дополнительные команды
- •XmMрасширение с плавающей точкой
- •Типы данных
- •Передача данных
- •Арифметика
- •Сравнения
- •Преобразования
- •Управление состоянием
- •Распаковка данных
- •Управление кэшированием
- •Дополнительные команды
- •Цикл трансляции, компоновки и выполнения
- •Ассемблер cisc
- •Введение
- •Средства программирования и отладки
- •Описание masm
- •Структура программы на ассемблере
- •Типы данных
- •Макросредства
- •Директивы
- •Архитектура risc
- •Система команд
- •Архитектура misc
- •Архитектура vliw
- •Архитектура вычислительных систем со сверхдлинными командами
- •Архитектура ia-64
- •Многоядерные архитектуры
- •Микроконтроллер avr от Atmel
- •Архитектура avr от Atmel
- •Ассемблер
- •Команды ассемблера
- •Директивы ассемблера
- •Выражения
- •Микроконтроллеры c28x
- •Архитектура c28x
- •Архитектура f28x
- •Инструментальные средства разработки по
- •Ассемблер
- •Команды ассемблера
- •Формат объектного файла
- •Директивы ассемблера
- •Макроязык и макрокоманды
- •Компоновщик
- •Архиватор
- •Абсолютный листер
- •Листер перекрестных ссылок
- •Утилита 16-ричного преобразования
- •Архитектура VelociTi
- •Структура и состав цсп с6x
- •Средства разработки цсп с6x
- •Ассемблер цсп с6x
- •Команды ассемблера
- •Выражения
- •Листинги
- •Листинги программ
- •Директивы ассемблера
- •Макроязык и макрокоманды
- •Компоновщик
- •Утилиты
- •Поддержка в matlab
- •Введение
- •Встроенные платы для цсп ‘c6x
Формат с плавающей точкой
Формат с плавающей точкой предназначен для компактного отображения вещественных чисел в очень широком диапазоне. Число представляется в алгебраическом формате: (S)(F)*2P, где
S (Sign) – знак числа. Для положительного S = 0, для отрицательного S = 1.
F (Fraction) - мантисса (значащая часть).
P (Power) – порядок.
В 1985 институт инженеров по электротехнике и электронике IEEE (Institute of Electrical and Electronics Engineers) в США разработал стандарт представления чисел с плавающей точкой IEEE 754. Согласно этому стандарту слово данных разбивается на три поля.
Однобитовое поле S (sign - знак) используется для указания знака числа. Для положительного числа S = 0, для отрицательного S = 1.
Поле F (fraction). В нем записывается дробная часть мантиссы (fraction). Мантисса наряду с дробной частью содержит целую часть (1 или 0). Бит целой части мантиссы в памяти не хранится для уменьшения объема запоминаемых данных, при отображении данных он автоматически учитывается.
Поле экспоненты (E – exponent), содержит смещённый порядок E=P+Bias. Biass – смещение, выбирается так, чтобы смещённый порядок был положительным или равным нулю.
Если целая часть мантиссы равна единице, то число считается нормализованным, а если она равна нулю, то ненормализованным. Целая часть мантиссы считается равной нулю, только в том случае, когда смещённый порядок числа также равен нулю. Во всех остальных случаях целая часть мантиссы равна единице.
В зависимости от точности представления форма с плавающей точкой имеет 3 стандарта:
С одинарной точностью SP (Single Precision floating-point format).
С двойной точностью DP (Double Precision floating-point format).
С расширенной одинарной точностью формат SEP (Single Extended Precision floating-point format). Это формат для представления результатов промежуточных и конечных вычислений с расширенной одинарной точностью. Применяется для данных, которые не могут быть представлены в формах SP или DP.
Сравнительные данные форм в стандарте IEEE754:
Параметр |
SP |
DP |
SEP |
Длина |
32 |
64 |
44 |
Знак числа |
1 |
1 |
1 |
Мантисса, всего |
24 |
53 |
32 |
Мантисса, дробная часть |
23 |
52 |
31 |
Мантисса, целая часть |
Неявная 1 |
Неявная 1 |
Явная 1 |
Смещенный порядок E |
8 |
11 |
11 |
Смещение Biass |
127 |
1023 |
1023 |
Порядок Pмин |
-126 |
-1022 |
-1022 |
Eмин |
1 |
1 |
1 |
Порядок Pмакс |
127 |
1023 |
1023 |
Eмакс |
254 |
2046 |
2046 |
Пример. Положительное двоичное число в формате с плавающей точкой SP.
0 |
01111100 |
10000000000000000000000 |
Знак, 1 бит |
Смещенный порядок, 8 бит |
Мантисса, дробь – 23 бита |
Определим десятичный эквивалент этого числа. Количество разрядов смещенного порядка E=8, величина смещения Biass=127. Десятичный эквивалент смещённого порядка равен 26+25+24+23+22= 124. Следовательно, порядокP(несмещённый) двоичного числаP=124-127= -3.
Десятичный эквивалент дробной части мантиссы равен 0.5. Так как смещённый порядок больше нуля, то скрытая целая часть мантиссы равна единице. Следовательно, десятичный эквивалент мантиссы равен 1.5. Поскольку знаковый разряд равен нулю, число положительно. Окончательно получим
N10 = 1.5*2-3 =1.5/8 = 0.1875.
Стандарт IEEE754 поддерживает представление специальных данных.
Тип |
E |
Мантисса, дробь |
Значение |
Нуль |
0000 0000 |
Нуль |
0 |
Бесконечность |
1111 1111 |
Нуль | |
Не число |
1111 1111 |
Не нуль |
Не число |
Представление двоичных вещественных чисел в форме с ФТ означает, что как для целой, так и дробной части отведено фиксированное число разрядов. То есть местоположение точки, отделяющей целую и дробную части числа, всегда одинаково. Представление двоичных целых чисел в форме с ФТ означает, что точка по существу отсутствует. Достоинством формы с ФТ является простота реализации арифметических операций, а недостатком – ограниченный динамический диапазон. Динамическим диапазоном называют отношение самого большого к самому малому по модулю (но отличным от нуля) чисел, которые можно представить с помощью данной формы. Для формы с ФТ это отношение равно 2n-1–1.
В общем случае двоичные вещественные числа в форме с ПТ представляются в виде х = 2Р, где– мантисса (вещественное двоичное число со знаком, представленное в форме с ФТ); Р – порядок (целое двоичное число со знаком); 2 – основание двоичной системы счисления. Однако присутствие двух параметрови Р приводят к неоднозначности представления чисел: одно и то же число можно представить по-разному, например 2 = 220или 2 = 121и т.д.
Поэтому и для упрощения арифметики чисел с ПТ применяют нормализованные формы чисел с ПТ. В цифровой технике часто используется нормализованная форма, в которой целая часть мантиссы всегда равна нулю, а первая значащая цифра дробной части отлична от нуля. То есть мантисса ограничена значениями 0,5 || < 1.
Целочисленная и дробная арифметики
Сложение двух чисел любой позиционной системы счисления производится по единому правилу:
сложение производится поразрядно, начиная с младших разрядов;
если сумма Si чисел в i-м разряде превышает или равна основанию Е системы счисления, то в этот разряд записывается разность Si–E, а в следующий, более старший разряд, переносится 1 в виде дополнительного слагаемого.
Вычитание чисел с целью упрощения технической реализации заменяется сложением. Для этого вычитаемое представляется в дополнительном коде и результат складывается с уменьшаемым.
Операции сложения и вычитания над двумя числами с ПТ выполняются в следующей последовательности:
Выравнивание порядков. В качестве общего выбирается больший порядок, мантисса числа с меньшим порядком логически сдвигается вправо на количество разрядов, равное разности порядков чисел.
Производится требуемая операция.
Нормализация результата, т.е. выбор такого значения порядка, при котором старший разряд мантиссы имеет единичное значение.