- •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.4.5.Указатели особого случая.
Предназначены для процедур обработки особых случаев. Они имеют два формата в зависимости от работы 80287 в реальном или защищенном режиме.
Реальный режим |
Защищенный режим | |||||||
15 |
0 |
31 387 |
15 |
0 | ||||
Адрес команды (0-15) |
|
смещ. |
Смещение команды | |||||
адрес ком 16-19 |
|
код операции 0-10 |
|
|
Селектор команды | |||
Адрес операнда (0-15) |
|
смещ. |
Смещение операнда | |||||
Адрес опер 16-19 |
|
|
|
Селектор операнда | ||||
15 |
12 |
11 |
0 |
| ||||
20-разрядные адреса команды и операнда и 11 младших разрядов кода операции |
Селектор плюс смещение подозрительной команды и ее операнда |
4.5.Система команд арифметического сопроцессора.
4.5.1.Команды передачи данных.
ТИП КОМАНДЫ |
МНЕМОНИКА И ФОРМАТ |
ОПЕРАНД/ДЕЙСТВИЕ |
КОМАНДЫ ЗАГРУЗКИ В СТЕК |
FLD REG/MEM |
Вещественное число |
|
FILD MEM |
Целое число |
|
FBLD MEM |
Десятичное число |
КОМАНДЫ ИЗВЛЕЧЕНИЯ ИЗ СТЕКА |
FSTP REG/MEM |
Вещественное число |
|
FISTP MEM |
Целое число |
|
FBSTP MEM |
Десятичное число |
КОМАНДЫ КОПИРОВАНИЯ |
FST REG/MEM |
Вещественное число |
|
FIST MEM |
Целое число |
КОМАНДА ОБМЕНА |
FXGH REG |
Обмен содержимым между регистрами стека |
КОМАНДЫ ЗАГРУЗКИ КОНСТАНТ |
FLDZ |
Загрузка 0 |
|
FLD1 |
Загрузка 1 |
|
FLDPI |
Загрузка |
|
FLDLG2 |
Загрузка log по основанию 10 из 2 |
|
FLDLN2 |
Загрузка ln 2 |
|
FLDL2T |
Загрузка log по основанию 2 из 10 |
|
FLDL2E |
Загрузка log по основанию 2 из Е |
КОМАНДЫ ЗАГРУЗКИ – все команды однооперандные, записывают в вершину стека заданный операнд. При загрузке операнд преобразуется в формат с заданной точностью, значение поля ST в регистре состояния уменьшается на единицу и операнд записывается в новую вершину стека. Преобразование формата осуществляется в соответствии с полем PC регистра управления.
КОМАНДЫ ИЗВЛЕЧЕНИЯ - все команды однооперандные, извлекают содержимое вершины стека и запоминают его в операнд-приемник. При этом содержимое вершины стека преобразуется в формат приемника, значение поля ST в регистре состояния увеличивается на единицу. Преобразование формата для двоичных чисел выполняется в соответствии с полем RC регистра управления, для десятичных чисел - путем суммирования числа и 0.5 и отбрасывания дробной части результата.
КОМАНДЫ КОПИРОВАНИЯ- все команды однооперандные, копируют содержимое вершины стека в операнд-приемник. При этом содержимое вершины стека преобразуется в формат приемника аналогично командам извлечения. Поле вершины стека данными командами не изменяется.
КОМАНДА ОБМЕНА- однооперандная команда, предназначена для обмена содержимого вершины стека и другого численного регистра. Поле вершины стека не изменяется.
КОМАНДЫ ЗАГРУЗКИ КОНСТАНТ - безоперандные команды, предназначены для быстрой загрузки констант в вершину стека. Поле вершины стека уменьшается на единицу.
Коды операций всех команд начинаются с бит 11011, которые соответствуют коду команды ESC в основном процессоре (заставляет извлечь содержимое указанного в ней операнда и передать его на шину данных). Ассемблерная мнемоника команд сопроцессора начинается с буквы F.