
- •Содержание
- •1.Введение в архитектуру эвм. 5
- •2.Архитектура реального режима работы м/п семейства 8086 19
- •3.Директивы и операторы ассемблера 81
- •4.Архитектура и система команд арифметического сопроцессора 91
- •5.Варианты контрольных работ 131
- •6.Примеры программ 138
- •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.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.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.Варианты контрольных работ
- •5.1.Контрольная работа №1
- •5.2. Контрольная работа №2
- •6.Примеры программ
- •Список рекомендуемой литературы
4.3.Формирование специальных значений в особых случаях
4.3.1. Случай неточного результата.
В качестве специального значения используется приближенное значение числа с плавающей точкой. Существуют четыре режима округления:
в направлении к 0 (обычно для целочисленной арифметики);
до ближайшего числа (если результат посередине, то выбирается ближайшее четное число).
округление к +
округление к -
Режимы c) и d) используются для реализации интервальной арифметики : операция выполняется дважды: с округлением к +и с округлением к-. Истинный результат находится между двумя результатами, следовательно не требуется анализ ошибок округления. При инициализации сопроцессора по умолчанию устанавливается режим округления к ближайшему числу, однако программист может его изменить.
4.3.2.Численное антипереполнение.
Принято соглашение, что для денормализованного числа поле порядка 00..00 считается равным 00...01, но старший бит мантиссы равен 0 (а не 1). Для одинарной точности смещение равно 127, следовательно, поле порядка 00000001 соответствует порядку - 126.
Пример :
Знак |
Порядок |
Старший бит мантиссы |
Мантисса – 23 бита |
|
0 |
00000001 |
1 |
10...00 |
= 1.12*2-126- норм. |
0 |
00000001 |
1 |
00...00 |
=1.02*2-126- норм. |
0 |
00000000 |
0 |
10...00 |
=0.12*2-126- денорм. |
0 |
00000000 |
0 |
01...00 |
=0.12*2-127- денорм. |
|
............ |
|
................ |
................................. |
0 |
00000000 |
0 |
00...01 |
=0.12*2-149– денорм. |
Точность минимального числа равна 1 биту, то есть происходит потеря точности ради расширения диапазона. Специальное значение - денормализованное число, а если результат мал для денормализованого числа, то в качестве результата формируется нуль.
На числовой оси плотность представимых чисел выше у нуля и ниже у максимальных значений.
-
+++++++
++-+++-+++-+
++-++-++-+-+-+-+-+-
+- -+- -+- - -+- - -+
0 Денорм.
Нормализованные числа
4.3.3. Денормализованный операнд.
Для денормализованных операндов выполняются следующие правила формирования результатов операций:
Результат равен 0, если он слишком мал для представления денормализованным числом (например, при умножении двух денормализованных чисел).
Результат - денормализованное число, если он представим в формате денормализованных чисел ( например, при сложении двух денормализованных чисел).
Результат - нормализованное число, если неточность денормализованного числа влияет на результат меньше, чем ошибка округления (например, при сложении денормализованного и большого нормализованного числа).
Результат - ненормализованное число, если результат слишком велик для денормализованного числа, неточный, а приемник имеет расширенную точность (например, при сложении денормализованного и большого нормализованного числа).
Ненормализованным числом называется число с расширенной точностью, имеющее обычное (ненулевое и неединичное) поле порядка и нулевой старший бит мантиссы.
Ненормализованные операнды в операциях подчиняются правилам для денормализованных чисел. Особый вид ненормализованного числа - псевдоноль. Псевдоноль имеет ненулевое поле порядка и нулевую мантиссу. В сравнениях псевдонули считаются нулями. Данный формат чисел поддерживается сопроцессором модели 80287 и не поддерживается моделью 80387 и устройством с плавающей точкой процессора 80486 и последующих моделей, так как уточнился стандарт представления чисел с плавающей точкой.
Результат - особый случай недействительной операции (наример, при делении на денормализированное число или попытке извлечения квадратного корня из денормализованного числа).