АРИФМЕТИЧЕСКИЙ СОПРОЦЕССОР
12.1.
12.2.
12.3.
12.4.
12.5.
12.6.
Последнее устройство, которое мы опишем в этом томе - арифметический сопроцессор Intel 8087/80287/80387. Это устройство подключено непосредственно к центральному процессору и предназначено для выполнения операций над числами в формате с плавающей точкой (вещественные числа) и длинными целыми числами.
Арифметический сопроцессор значительно (в десятки раз) ускоряет вычисления, связанные с вещественными числами. Он может вычислять такие функции, как синус, косинус, тангенс, логарифмы и т.д. Разумеется, что с помощью сопроцессора можно выполнять и простейшие арифметические операции сложения, вычитания, умножения и деления.
Основная область применения арифметического сопроцессора - научные расчеты и машинная графика. Некоторые пакеты САПР, например, Autocad версии 10, отказывается работать, если в машине отсутствует сопроцессор. Более современный процессор Intel 80486 содержит встроенный арифметический сопроцессор, совместимый с 80387 (и даже немного более мощный).
Сопроцессор запускается центральным процессором. После запуска он выполняет все вычисления самостоятельно и параллельно с работой центрального процессора. Если центральный процессор выдает очередную команду сопроцессору в момент времени, когда тот еще не закончил выполнение предыдущей команды, центральный процессор переводится в состояние ожидания. Если же сопроцессор ничем не занят, центральный процессор, выдав команду сопроцессору, продолжает свою работу, не дожидаясь завершения вычисления. Впрочем, есть специальные средства синхронизации (команда FWAIT).
Как программировать сопроцессор?
Команды, предназначенные для выполнения сопроцессором, записываются в программе как обычные машинные команды центрального процессора. Но все эти команды начинаются байта, соответствующего команде центрального процессора ESC.
Встретив такую команду, процессор передает ее на выполнение сопроцессору, а сам продолжает выполнение программы со следующей команды.
Ассемблерные мнемоники всех команд сопроцессора начинаются с буквы F, например: FADD, FDIV, FSUB и т.д. Команды сопроцессора могут адресоваться к операндам, аналогично обычным командам центрального процессора. операндами могут быть либо данные, расположенные в основной памяти компьютера, либо внутренние регистры сопроцессора.
Возможны все виды адресации данных, используемые центральным процессором.
Прежде чем начать обсуждение команд, выполняемых сопроцессором, приведем форматы используемых данных. Как мы уже говорили, сопроцессор может работать либо с данными в формате с плавающей точкой, либо с целыми числами. В следующем разделе мы рассмотрим используемые форматы чисел с плавающей точкой или форматы вещественных чисел.