угол, выраженный в радианах. Сохранить угол в виде числа с плавающей точкой в аккумуляторе 1.
TAN Образовать тангенс числа с плавающей точкой, представляющего угол, выраженный в радианах. Сохранить угол в виде числа с плавающей точкой в аккумуляторе 1.
ASIN Образовать арксинус числа с плавающей точкой в аккумуляторе 1. Результатом является угол, выраженный в радианах. Значение будет находиться в следующем диапазоне: -π / 2 ≤ арксинус (ACCU 1) ≤ +
π / 2, где π = 3.14...
ACOS Образовать арккосинус числа с плавающей точкой в аккумуляторе 1. Результатом является угол, выраженный в радианах. Значение будет находиться в следующем диапазоне: 0 ≤ арккосинус (ACCU 1)
≤ + π, где π = 3.14...
ATAN Образовать арктангенс числа с плавающей точкой в аккумуляторе 1. Результатом является угол, выраженный в радианах. Значение будет находиться в следующем диапазоне: -π / 2 ≤ арктангенс (AKKU 1) ≤ + π / 2, где π = 3.14...
Команды тригонометрических функций следующим образом влияют на биты слова состояния:
Результат в аккумуляторе 1 |
СС1 |
СС0 |
OV |
OS |
+ qNaN |
1 |
1 |
1 |
1 |
+ бесконечность (переполнение) |
1 |
0 |
1 |
1 |
+ нормализован |
1 |
0 |
0 |
− |
+ не нормализован (потеря значимости) |
0 |
0 |
1 |
1 |
+ нуль |
0 |
0 |
0 |
− |
− нуль |
0 |
0 |
0 |
− |
− не нормализован (потеря значимости) |
0 |
0 |
1 |
1 |
− нормализован |
0 |
1 |
0 |
− |
− бесконечность (переполнение) |
0 |
1 |
1 |
1 |
– qNaN |
1 |
1 |
1 |
1 |
21. ОПЕРАЦИИ СРАВНЕНИЯ
Команды Сравнить можyj использовать для сравнения следующих пар числовых значений:
•два целых числа (16 битов);
•два двойных целых числа (32 бита);
•два вещественных числа (числа с плавающей точкой в формате IEEE,
105
32 бита).
Числовые значения, подлежащие сравнению, предварительно загружаютсяв аккумуляторы 1 и 2. Команда Сравнить сравнивает значение в аккумуляторе 1 со значением в аккумуляторе 2 в соответствии с критериями, перечисленными в табл. 11.1.
Результатом сравнения является логической величиной, т.е. 1 или 0. 1 указывает, что результат сравнения является истиной; 0 указывает, что результат сравнения является ложью. Этот результат сохраняется в бите результата логической операции (бит RLO). Этот результат вы можете использовать в своей программе для дальнейшей обработки.
Когда CPU выполняет команду сравнения, он также устанавливает биты в слове состояний. Другие команды AWL могут анализировать биты слова состояния. CPU выполняет команды сравнения независимо от результата логической операции.
|
|
Табл. 11.1 |
Символ (ы) |
Критерий |
Вид числового значения |
для команды |
сравнения |
в аккумуляторах 1 и 2 |
= = I |
равно |
Целое число (16 бит) в младшем слове |
|
|
аккумулятора 2 равно целому числу в младшем |
|
|
слове аккумулятора 1. |
= = D |
равенство |
Двойное целое число (32 бита) в аккумуляторе 2 |
|
|
равно двойному целому числу в аккумуляторе 1. |
= = R |
равенство |
Число с плавающей точкой (32 бита, IEEE) в |
|
|
аккумуляторе 2 равно числу с плавающей точкой |
|
|
(32 бита, IEEE) в аккумуляторе 1. |
< > I |
не равно |
Целое число (16 бит) в младшем слове |
|
|
аккумулятора 2 не равно целому числу в младшем |
|
|
слове аккумулятора 1. |
< > D |
не равно |
Двойное целое число (32 бита) в аккумуляторе 2 не |
|
|
равно двойному целому числу в аккумуляторе 1. |
< > R |
не равно |
Число с плавающей точкой (32 бита, IEEE) в |
|
|
аккумуляторе 2 не равно числу с плавающей |
|
|
точкой (32 бита, IEEE) в аккумуляторе 1. |
> I |
больше |
Целое число в младшем слове аккумулятора 2 |
|
|
больше целого числа в младшем слове |
|
|
аккумулятора 1. |
> D |
больше |
Двойное целое число в аккумуляторе 2 больше |
|
|
двойного целого числа в аккумуляторе 1. |
> R |
больше |
Число с плавающей точкой (32 бита, IEEE) в |
|
|
аккумуляторе 2 больше числа с плавающей точкой |
|
|
(32 бита, IEEE) в аккумуляторе 1. |
< I |
меньше |
Целое число в младшем слове аккумулятора 2 |
106
Символ (ы) |
Критерий |
Вид числового значения |
|
для команды |
сравнения |
в аккумуляторах 1 и 2 |
|
|
|
меньше целого числа в младшем слове |
|
|
|
аккумулятора 1. |
|
< D |
меньше |
Двойное целое число в аккумуляторе 2 |
меньше |
|
|
двойного целого числа в аккумуляторе 1. |
|
< R |
меньше |
Число с плавающей точкой (32 бита, IEEE) в |
|
|
|
аккумуляторе 2 меньше числа с плавающей точкой |
|
|
|
(32 бита, IEEE) в аккумуляторе 1. |
|
>= I |
больше |
Целое число в младшем слове аккумулятора 2 |
|
|
или равно |
больше или равно целому числу в младшем слове |
|
|
|
аккумулятора 1. |
|
>= D |
больше |
Двойное целое число в аккумуляторе 2 больше или |
|
|
или равно |
равно двойному целому числу в аккумуляторе 1. |
|
>= R |
больше |
Число с плавающей точкой (32 бита, IEEE) в |
|
|
или равно |
аккумуляторе 2 больше или равно числу с |
|
|
|
плавающей точкой (32 бита, IEEE) в аккумуляторе |
|
|
|
1. |
|
<= I |
меньше |
Целое число в младшем слове аккумулятора 2 |
|
|
или равно |
меньше или равно целому числу в младшем слове |
|
|
|
аккумулятора 1. |
|
<= D |
меньше |
Двойное целое число в аккумуляторе 2 |
меньше |
|
или равно |
или равно двойному целому числу в аккумуляторе |
|
|
|
1. |
|
<= R |
меньше |
Число с плавающей точкой (32 бита, IEEE) в |
|
|
или равно |
аккумуляторе 2 меньше или равно |
числу с |
|
|
плавающей точкой (32 бита, IEEE) в аккумуляторе |
|
|
|
1. |
|
22. КОМАНДЫ ПРЕОБРАЗОВАНИЯ
Следующие команды можно использовать для преобразования чисел, представленных в двоично-десятичном коде, и целых чисел в другие виды чисел:
Мнемоника |
Команда |
Функция |
BTI |
BCD в целое |
команда преобразует находящееся в младшем |
|
|
слове аккумулятора 1 число, представленное |
|
|
в двоично-десятичном коде, в 16-битовое |
107
|
|
|
|
целое число. |
|
|
|
BTD |
BCD |
в |
двойное |
команда |
преобразует |
находящееся |
в |
|
целое |
|
|
аккумуляторе 1 число, представленное в |
|||
|
|
|
|
двоично-десятичном коде, в 32–битовое целое |
|||
|
|
|
|
число. |
|
|
|
ITB |
Целое в BCD |
команда преобразует 16–битовое целое число |
|||||
|
|
|
|
в младшем слове аккумулятора 1 в двоично- |
|||
|
|
|
|
десятичное число. |
|
|
|
ITD |
Целое |
в |
двойное |
команда преобразует 16–битовое целое число |
|||
|
целое |
|
|
в младшем слове аккумулятора 1 в 32– |
|||
|
|
|
|
битовое целое число. |
|
|
|
DTB |
Двойное |
целое |
команда преобразует 32–битовое целое число |
||||
|
число в BCD |
в аккумуляторе 1 в двоично-десятичное |
|||||
|
|
|
|
число. |
|
|
|
DTR |
Двойное |
целое |
команда преобразует 32–битовое целое число |
||||
|
число |
|
в |
в аккумуляторе 1 в 32– битовое число с |
|||
|
вещественное |
плавающей |
точкой в |
формате |
IEEE |
||
|
|
|
|
(вещественное число). |
|
|
|
BCD в целое: BTI
Команда BCD в целое (BTI) преобразует трехразрядное число, записанное в двоично-десятичном коде (BCD-число, см. рис. 12.1) в младшем слове аккумулятора 1 в 16–битовое целое число. BCD-число может находиться в диапазоне от –999 до +999. Результат преобразования сохраняется в младшем
слове аккумулятора 1. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
|
4 |
3 |
2 |
1 |
|
0 |
||
|
s |
s |
s |
s |
n |
n |
n |
n |
n |
n |
n |
n |
n |
n |
n |
n |
|||
|
|
|
|
|
|
сотни |
|
|
десятки |
|
|
единицы |
|
||||||
Значение BCD числа
эти биты при преобразовании не используются
Знак: 0000 для положительного числа, 1111 – для отрицательного
Рис. 12.1. Структура двоично-десятичного числа, которое должно быть преобразовано в целое число
Если какой-либо разряд BCD–числа находится в недопустимом диапазоне между 10 и 15, то при попытке преобразования возникает ошибка BCDF. Имеет место один из следующих случаев:
• CPU переходит в состояние STOP. В диагностический буфер вносится
108
запись «BCD Conversion Error [Ошибка BCD-преобразования]» с идентификатором события номер 2521;
• Если запрограммирован OB121, то он вызывается.
BCD в двойное целое: BTD
Команда BCD в двойное целое (BTD) преобразует семиразрядное число, записанное в двоично-десятичном коде (BCD–число) в аккумуляторе 1 в 32– битовое целое число. BCD–число может находиться в диапазоне от –9 999 999 до +9 999 999. Результат преобразования сохраняется в аккумуляторе 1.
Если какой-либо разряд BCD–числа находится в недопустимом диапазоне между 10 и 15, то при попытке преобразования возникает ошибка BCDF. Имеет место один из следующих случаев:
•CPU переходит в состояние STOP. В диагностический буфер вносится запись «BCD Conversion Error [Ошибка BCD-преобразования]» с идентификатором события номер 2521;
•Если запрограммирован OB121, то он вызывается.
Целое в BCD: ITB
Команда Целое в BCD (ITB) преобразует 16–битовое целое число, находящееся в младшем слове аккумулятора 1 в трехразрядное число, записанное в двоичнодесятичном коде. BCD–число может находиться в диапазоне от–999 до +999. Результат преобразования сохраняется в младшем слове аккумулятора 1.
Если целое число слишком велико, чтобы быть представленным в формате BCD, то преобразование не производится, биты переполнения (OV) и сохраняемого переполнения (OS) в слове состояния устанавливаются в 1.
Целое в двойное целое: ITD
Команда Целое в двойное целое (ITD) преобразует 16–битовое целое число, находящееся в младшем слове аккумулятора 1, в 32–битовое целое число. Результат преобразования сохраняется в аккумуляторе 1.
Двойное целое в BCD: DTB
Команда Двойное целое в BCD (DTB) преобразует 32–битовое целое число, находящееся в аккумуляторе 1, в семиразрядное число, записанное в двоичнодесятичном коде. BCD–число может находиться в диапазоне от –9 999 999 до +9 999 999. Результат преобразования сохраняется в аккумуляторе 1.
Если двойное целое число велико, чтобы быть представленным в формате BCD, то преобразование не выполняется, биты переполнения (OV) и сохраняемого переполнения (OS) в слове состояния устанавливаются в 1.
109