Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
68
Добавлен:
24.02.2016
Размер:
27.74 Mб
Скачать

3.6. Математические команды

Математические операции выполняются между числами, представленными в двоично-десятичных кодах. Результат операции помещается в аккумулятор.

Дискретный бит флага

Описание

SP63

Включен, когда после выполнения команды, значение в аккумуляторе равно нулю.

SP66

Включен, когда выполнение 16-ти разрядной команды приводит к переносу.

SP67

Включен, когда выполнение 32-х разрядной команды приводит к переносу.

SP70

Включен, когда значение в аккумуляторе отрицательное.

SP75

Включен, когда при выполнении команды встретилось число не в двоично-десятичном коде.

Таблица 3.13. Дискретные биты флагов состояний математических команд

Команда Add (см. рис. 3.18.а) складывает значения в аккумуляторе и в ячейке памяти с адресом (Vaaa). Данная команда оперирует с 16-ти разрядными величинами.

Команда Add Double (см. рис. 3.18.б) складывает значение в аккумуляторе и значение операнда Aaaa. Операнд может указывать на содержимое двух последовательных ячеек V-памяти, начиная с Aaaa, или быть 8-и разрядной константой. Данная команда оперирует с 32-х разрядными величинами.

Команда Subtract (см. рис. 3.18.в) вычитает значение операнда Aaaa из значения, находящегося в младших 16 битах аккумулятора. Операнд может указывать на содержимое ячейки V-памяти или быть 4-х разрядной константой. Данная команда оперирует с 16-ти разрядными величинами.

К

Рис. 3.18. Обозначение математических команд

оманда Subtract Double (см. рис. 3.18.г) вычитает значение операнда Aaaa из значения, находящегося в аккумуляторе. Операнд может указывать на содержимое двух

последовательных ячеек V-памяти, начиная с Aaaa, или быть 8-и разрядной константой. Данная команда оперирует 32-х разрядными величинами.

Команда Multiply (см. рис. 3.18.д) умножает значение операнда Aaaa на число, находящееся в младших 16 битах аккумулятора. Операнд может указывать на содержимое ячейки V-памяти или быть 4-х разрядной константой. Данная команда оперирует 16-ти разрядными величинами.

Команда Divide (см. рис. 3.18.е) делит содержимое аккумулятора на значение операнда Aaaa. Операнд может указывать на содержимое ячейки V-памяти или быть 4-х разрядной константой. При выполнении операции целая часть частного хранится в аккумуляторе, а остаток находится в первом уровне стека. Данная команда оперирует 16-ти разрядными величинами.

Команда(см. рис. 3.19.а) увеличивает двоичное значение в указанной ячейке V-памяти на 1 каждый раз, когда она выполняется.

К

Рис. 3.19. Обозначение команд Increment Binary и Decrement Binary

оманда(см. рис. 3.19.б) уменьшает двоичное значение в указанной ячейке V-памяти на 1 каждый раз, когда она выполняется.

3.7. Команды операций с битами

Команда Shift Left (см. рис. 3.20.а) сдвигает биты в аккумуляторе влево на указанное число (Aaaa) битов. Освобожденные правые позиции в аккумуляторе заполняются нулями, а смещенные левые – отбрасываются. Данная команда оперирует с 32-х разрядными величинами. Типы операндов для данной команды представлены в табл. 3.14.

Тип операнда

Обозначение (А)

Диапазон

aaa

V-память

V

см. таблицу 1.9.

Константа

K

1 – 32

Таблица 3.14. Типы операндов для команд семейства Shift

Команда Shift Right (см. рис. 3.20.б) сдвигает биты в аккумуляторе вправо на указанное число (Aaaa) битов. Освобожденные левые позиции в аккумуляторе заполняются нулями, а смещенные правые – отбрасываются. Данная команда оперирует с 32-х разрядными величинами. Типы операндов для данной команды представлены в табл. 3.14.

Команда Encode (см. рис. 3.20.в) кодирует позицию бита в аккумуляторе, который содержит “1”, и возвращает соответствующее номеру этой позиции двоичное представление. Если старший бит (бит 31) аккумулятора будет установлен в “1”, то данная команда поместит шестнадцатеричный эквивалент числа 31, а именно 1F, в аккумулятор. Если будут кодироваться числа 0000 или 0001, то данная команда поместит в аккумулятор 0. Если в кодируемой величине число битов, содержащих “1”, больше одного, то самый младший из них будет закодирован и включится флаг SP53.

Команда Decode (см. рис. 3.20.г) выполняет действия, обратные команде Encode. Она декодирует 5-и разрядную двоичную величину, соответствующую десятичной величине 0 – 31 шестнадцатеричной 0 – 1F в аккумуляторе. Эта величина представляет собой номер позиции, на которую данная команда поместит “1”. Если аккумулятор содержит значение F (шестнадцатеричное), то данная команда поместит “1” в 15-й разряд аккумулятора. Если декодируемая величина больше 31, то она будет делиться на 32, пока не станет меньше 32-х, а затем будет декодирована /3/.

Рис. 3.20. Обозначение команд операций с битами