- •Содержание
- •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.6.2.Синхронизация по данным.
Если сопроцессорная команда записывает операнд в ячейку памяти, а следующая команда центрального процессора использует этот операнд в дальнейших вычислениях, ЦП должен ожидать завершения операции сопроцессора. автоматически учесть такие ситуации сложно, поэтому вся работа по синхронизации в этом случае ложится на программиста. Для реализации этой синхронизации можно использовать команду FWAITили любую другую “пустую” команду сопроцессора, например :FNOP,FSTST(0). В устройствеFPU- есть синхронизация по данным, которая автоматически реализуется ассемблером или компилятором языка высокого уровня.
5.Варианты контрольных работ
5.1.Контрольная работа №1
Реализовать ввод элементов массива с контролем допустимых кодов символов и диапазона значений элементов массива. Вывести элементы полученных массивов на экран.
Вариант 1
Из исходного массива двузначных десятичных чисел со знаком получить два новых, поместив в первый из них значения элементов, превосходящих среднее значение массива, а во второй номера этих элементов (среднее = ).
Вариант 2
Из двух исходных массивов двузначных десятичных чисел без знака X и Y cформировать массив Z, поместив в него все элементы исходных, превышающие общее среднее = .
Вариант 3
Из исходного массива двузначных десятичных чисел со знаком получить два новых, поместив в первый из них номера максимальных, а во 2-ой номера минимальных элементов исходного. (Предполагается, что MIN и MAX могут быть не единственными).
Вариант 4
Найдите в массиве двузначных десятичных чисел без знака X все элементы и их номера и поместите эти значения в два новых массиваY- элементов иZ- индексов.
Вариант 5
Из исходного массива Xдвузначных десятичных чисел со знаком сформировать массивY- отклонений от среднего () и массивZ- номеров элементов исходного массива, превышающих среднее.
Вариант 6
Выявить все номера элементов массива двузначных десятичных чисел без знака X, превышающих (max+min)/2. В результате сформировать 2 массива:Y- масив номеров иZ- массив значений, для которых выполняется заданное условие.
Вариант 7
Из исходного массива двузначных десятичных чисел со знаком Xполучить новый массивY().
Подсчитайте среднее = .
Вариант 8
Из исходного массива двузначных десятичных чисел без знака получить два новых, поместив в них значения и номера элементов, для которых выполняется условие
Вариант 9
Из исходного массива двузначных десятичных чисел со знаком Xполучить два новыхYиZ, таких что:
Вариант 10
Получить из исходного массива Xдвузначных десятичных чисел без знака два новыхY,Z, поместив в них элементы и номера элементов массиваX, для которых выполняется условие .
Вариант 11
Получить из исходного массива Xдвузначных десятичных чисел без знака два новыхY,Z, помеcтив в них номера элементов и их значения, для которых выполняется условие.
Вариант 12
Получить из исходного массива Xдвузначных десятичных чисел со знаком два новыхY,Z, поместив в них элементы и номера, для которых выполняется условие.
Вариант 13
Из исходного массива Xдвузначных десятичных чисел без знака получить два новыхY,Z, поместив вYэлементы, значения которых меньше (Xmax+Xmin)/ 2, а в Z - номера этих элементов.
Вариант 14
Из исходного массива Xдвузначных десятичных чисел со знаком получить два новыхY,Z, поместив в первый из них нечетные значения элементов массива, а во второй – их номера.
Вариант 15
Из исходного Xдвузначных десятичных чисел без знака получить два новыхY,Z,, поместив в первый из них номера элементов превышающих заданное число А, а во второй - элементы, значения которых меньше среднего в массиве (среднее =).
Вариант 16
Получить из исходного массива Xдвузначных десятичных чисел без знака два новыхY,Z, поместив в них элементы и номера, для которых выполняется условиеx i <= xi-1 + xi+1.
Вариант 17
Из исходного массива двузначных десятичных чисел без знака Xполучить два новыхYиZ, таких что:
Вариант 18
Получить из исходного массива Xдвузначных десятичных чисел со знаком два новыхY,Z, поместив в них элементы и номера элементов массиваX, для которых выполняется условие:xi <= xmax – xmin.
Вариант 19
Получить из исходного массива Xдвузначных десятичных чисел со знаком два новыхY,Z, помеcтив в них номера элементов и их значения, для которых выполняется условие:xi < (xi-1 +xi +xi+1)/3.
Вариант 20
Получить из исходного массива Xдвузначных десятичных чисел без знака два новыхY,Z, поместив в них элементы и номера, для которых выполняется условие:xi <= xmax +xmin.
Вариант 21
Из исходного массива Xдвузначных десятичных чисел со знаком получить два новыхY,Z, поместив вYэлементы, значения которых меньше (xmax-xmin)/ 4, а в Z - номера этих элементов.
Вариант 22
Из исходного массива Xдвузначных десятичных чисел без знака получить два новыхY,Z, поместив в первый из них четные значения элементов массива, а во второй – их номера.
Вариант 23
Из исходного Xдвузначных десятичных чисел со знаком получить два новыхY,Z,, поместив в первый из них номера элементов не превышающих заданное число А, а во второй - элементы, значения которых больше среднего в массиве (среднее =).
Вариант 24
Получить из исходного массива Xдвузначных десятичных чисел со знаком два новыхY,Z, поместив в них элементы и номера, для которых выполняется условиеx i = xi-1 + xi+1.
Вариант 25
Из исходного массива двузначных десятичных чисел без знака получить два новых, поместив в первый из них значения элементов, не превосходящих среднее значение массива, а во второй номера этих элементов (среднее = ).
Вариант 26
Из двух исходных массивов двузначных десятичных чисел со знаком X и Y cформировать массив Z, поместив в него все элементы исходных, не превышающие общее среднее = .