Методические указания по лабораторным работам по курсу «Аппаратные средства компьютерных систем», страница 14

Целое число занимает два байта. Его формат полностью соответствует используемому центральным процессором. Короткое целое и длинное целое имеют аналогичные форматы, но занимают, соответственно, 4 и 8 байт.

Упакованное десятичное число занимает 10 байт. Это число содержит 18 десятичных цифр, расположенных по две в каждом байте. Знак упакованного десятичного числа находится в старшем бите самого левого байта. Остальные биты старшего байта должны быть равны 0.

Более подробно форматы чисел рассмотренны в [8].

Систему команд сопроцессора [6, 8] можно разбить на 6 групп: команды передачи данных, арифметические команды, команды сравнения, команды трансцендентных операций, команды загрузки констант и команды управления сопроцессором. В мнемониках команд приняты следующие соглашения. Первая буква F (Floating) идентифицирует команду сопроцессора. Вторая буква I (Integer) указывает на операцию с целым двоичным числом, буква B (Binary-coded decimal) — на операцию с десятичным операндом, “пустая” — на операцию с вещественными числами; предпоследняя или последняя буква R (Reverse) указывает на обратную операцию; последняя буква P (Popping) указывает на команду, заключительным действием которой является извлечение из стека.

В процессе выполнения команд сопроцессором может возникнуть исключительная ситуация. Сопроцессор различает 6 условий их возникновения. Ниже перечислены эти ситуации (в порядке приоритета), причины, вызвавшие их, и действия, предпринимаемые сопроцессором по умолчанию, если разрешена обработка соответствующих исключительных ситуаций в управляющем слове сопроцессора.

Недействительная операция — операция после выдачи NAN (нечисловой операнд), неподдерживаемый формат, неопределенная форма или переполнение/опустошение стека. Результат — скрытый NAN, неопределенное целое или неопределенное BCD.

Денормализованный операнд — хотя бы один из операндов не нормализован, т.е. очень малый порядок при нулевой значащей части. Обработка продолжается.

Нулевой делитель — делитель равен нулю, а делимое не нуль и не бесконечность. Результат — бесконечность.

Переполнение — результат слишком велик и не помещается в заданный формат. Результат — наибольшее число или бесконечность.

Потеря значимости — истинный результат отличен от нуля, но слишком мал для представления в заданном формате. Результат — денормализованный или нуль.