- •3 Методическое пособие для лабораторных работ по курсу «Организация эвм и периферийные устройства» Оглавление
- •1.Введение в архитектуру эвм.
- •1.1.Структура персонального компьютера.
- •2.Архитектура реального режима работы м/п семейства 8086
- •2.1.Форматы данных микропроцессора
- •2.1.1.Числа
- •2.1.2.Символы
- •2.1.3.Указатели
- •2.1.4.Цепочки
- •2.2.Адресация памяти
- •2.3.Внутренние регистры процессора
- •2.3.1.Регистры общего назначения
- •2.3.2.Сегментные регистры
- •2.3.3.Регистры смещения
- •2.3.4.Регистр флагов
- •2.4.Режимы адресации
- •2.4.5.Базовая адресация
- •2.5.1.1. Общие команды.
- •2.5.1.2. Команды push и pop .
- •2.5.1.3. Команды ввода-вывода.
- •2.5.1.4. Адресные команды (пересылки адреса)
- •2.5.1.5. Флажковые команды (команды пересылки флагов).
- •2.5.2.Арифметические команды.
- •2.5.2.1. Команды сложения.
- •2.5.2.2.Команды вычитания.
- •2.5.2.3.Команды умножения и деления.
- •2.5.2.4.Команды расширения знака.
- •2.5.2.5.Десятичная арифметика.
- •2.5.3.Логические команды.
- •2.5.3.1.Булевы команды.
- •2.5.3.2.Команды сдвигов.
- •2.5.3.3.Команды циклических сдвигов.
- •2.5.3.4.Команды двойного сдвига
- •2.5.3.5.Команды работы с двоичными цепочками
- •2.5.4.Команды передачи управления.
- •2.5.4.1.Команды безусловной передачи управления.
- •2.5.4.2. Команды условных переходов.
- •2.5.4.3.Команды SetCondition
- •2.5.4.4 Команды управления циклами.
- •2.5.5.Цепочечные (строковые) команды.
- •2.5.5.1.Команды пересылки цепочки.
- •2.5.5.2.Команды сравнения цепочек.
- •2.5.5.3.Команды сканирования цепочек.
- •2.5.5.4.Команды загрузки.
- •2.5.5.5.Команды сохранения цепочек.
- •2.5.5.6.Команды ввода и вывода цепочек.
- •2.5.5.7.Замена сегмента.
- •2.5.6.Команды управления микропроцессором.
- •2.5.6.1.Команды управления флагами.
- •2.5.6.2.Команды синхронизации.
- •2.5.6.3.Команда холостого хода.
- •2.5.6.4.Команды прерываний.
- •2.5.7.Новые команды микропроцессора 80486
- •3.Директивы и операторы ассемблера
- •3.1.Структура программы
- •3.2.Организация программы.
- •3.2.1. Модели памяти
- •3.2.2. Процедуры
- •3.2.3. Директивы задания набора допустимых команд
- •3.3.Примеры использования директив в программах типа .Exe и .Com.
- •4.Архитектура и система команд арифметического сопроцессора
- •4.1.Форматы чисел сопроцессора
- •4.1.1.`Целые числа
- •4.1.2. Вещественные числа
- •4.1.3.Диапазоны вещественных чисел в х87.
- •4.2.Особые случаи вещественной арифметики
- •4.3.Формирование специальных значений в особых случаях
- •4.3.1. Случай неточного результата.
- •4.3.2.Численное антипереполнение.
- •4.3.3. Денормализованный операнд.
- •4.3.4. Деление на ноль.
- •4.3.5.Численное переполнение.
- •4.3.6.Недействительная операция.
- •4.4.Регистры математического сопроцессора.
- •4.4.1.Численные регистры (регистровый стек).
- •4.4.2.Регистр управления (cw)
- •4.4.3.Регистр состояния.
- •4.4.4. Регистр тэгов (признаков).
- •4.4.5.Указатели особого случая.
- •4.5.Система команд арифметического сопроцессора.
- •4.5.1.Команды передачи данных.
- •4.5.2.Арифметические команды
- •4.5.3.Дополнительные арифметические команды
- •4.5.4.Команды сравнений
- •4.5.5.Трансцендентные команды
- •4.5.6.Административные команды
- •4.6.Совместная работа двух процессоров в системе.
- •4.6.1.Синхронизация по командам.
- •4.6.2.Синхронизация по данным.
- •5.Примеры программ
- •Список рекомендуемой литературы
4.1.Форматы чисел сопроцессора
Сопроцессор поддерживает представление чисел в следующих форматах: целые двоичные, целые двоично-десятичные и вещественные двоичные числа.
4.1.1.`Целые числа
Целые двоичные числа могут быть представлены в трех различных форматах:
1. Целое слово - 16 бит (DW);
2. Короткое целое слово - 32 бита (DD);
3. Длинное целое слово - 64 бита (DQ);
Все они представимы в обычном формате целых чисел со знаком.
Двоично-десятичные целые числа представлены в упакованном двоично-десятичном формате размером 80 бит (DT), при этом каждая десятичная цифра кодируется четырьмя двоичными разрядами.
1 бит |
7 бит |
72 бита | |||
S |
|
d17 |
........ |
d1 |
d0 |
Знак |
Не исп. |
4 бита=1 цифра |
4.1.2. Вещественные числа
Вещественные числа могут быть представлены тремя различными форматами:
1. Короткое вещественное (одинарная точность) -32 бита (DD);
1 бит |
8 бит |
23 бита |
|
S |
Порядок |
мантисса |
DD |
2. Длинное вещественное (двойная точность) - 64 бита (DQ);
1 бит |
11 бит |
52 бита |
|
S |
Порядок |
Мантисса |
DQ |
3. Временное вещественное (расширенная точность) - 80 бит (DT);
1 бит |
15 бит |
64 бита |
|
S |
Порядок |
мантисса |
DT |
1) S- поле знака: равно нулю, если число положительное и равно 1, если число отрицательное;
Для представления нуля используются нулевой порядок и нулевая мантисса, следовательно существует два нуля: положительный и отрицательный. Обычно этот факт скрыт от программиста - в командах сравнения оба пуля считаются одним числом.
2) Поле мантиссы.
В сопроцессоре принята “научная нотация“ представления чисел. При этом предполагается, что поле мантиссы представимо в виде Х.ХХ...Х, где старший бит, находящийся слева от точки должен быть не равен нулю. Для двоичной системы счисления это означает, что старший бит должен быть равен единице. Следовательно, его можно не хранить, что и сделано в форматах одинарной и двойной точности для расширения диапазона представления чисел. В формате с расширенной точностью старший бит хранится явно, так как дополнительная точность не требуется, а вычисления происходят быстрее.
3) Поле порядка. Порядок - это степень числа два, на которое надо умножить мантиссу.
Для представления отрицательных порядков в поле порядка хранится сумма истинного порядка и смещение. Для одинарной точности смещение равно 127. Для двойной точности смещение равно 1023. Для расширенной точности смещение равно 16383.
Если поле порядка составляет 8 бит как в формате с одинарной точностью, то максимальное значение порядка составляет 28-1 = 255 , то есть диапазон хранимых порядков рассчитывается следующим образом:
255 - 127 = 128 – максимальный порядок;
0 - 127 = -127 – минимальный порядок.
Аналогично можно рассчитать диапазоны хранимых порядков для форматов чисел с двойной и расширенной точностью.
Так как во всех форматах чисел минимальное и максимальное значения порядков зарезервированы для обработки особых случаев, то реальный диапазон порядка нормализованных чисел меньше на два для всех форматов чисел, то есть для чисел с одинарной точностью максимальный порядок равен 127 ,а минимальный порядок равен 126.
Формат чисел с двойной точностью позволяет получить произведение двух чисел с одинарной точностью без потери точности.
Формат чисел с расширенной точностью предназначен для представления промежуточных результатов при работе с числами в формате с двойной точностью. Существует три причины выбора 80 – разрядного представления чисел в формате с расширенной точностью:
Исследования показали, что для самых сложных для вычислений математических функций не происходит потери точности при получении окончательных результатов в формате чисел с двойной точностью, если размер мантиссы составляет не менее 64 бит, при этом порядок составляет 15 бит и общий минимальный размер двоичного числа составляет 80 бит;
Для того чтобы использовать более привычное 16-байтное представление чисел с расширенной точностью (128 бит) требуются более сложные схемы процессора или при тех же схемах будет меньшая производительность процессора;
Цель формата расширенной точности - защита промежуточных результатов. Если взять удобный 16-байтный формат, то может случиться, что все вычисления будут производиться в нем и тогда надо расширять точность для промежуточных результатов и так далее.