Составители:
23
CC_ULT − левый операнд меньше правого (без знака);
CC_UGT − левый операнд больше правого (без знака);
CC_SLT − меньше (со знаком);
СС_SGT − больше (со знаком);
CC_SLE − меньше или равно (со знаком);
CC_SGE − больше или равно (со знаком).
Мнемокоды битовых команд условных переходов:
JB − переход по метке, если в устройстве, указанном
в условии, установлен бит
(единица);
JNB − переход по метке, если в устройстве, указанном в условии, не установлен
бит (единица).
Если объявленное в команде условие в ходе реализации программы
выполняется, то программа переходит по метке; если условие не выполняется,
то команда условного перехода игнорируется.
Пример 5.6.2
Если в результате операции вычитания разность станет равной нулю, то,
игнорируя команду пересылки, произвести операцию сдвига информации.
Программа
SUB R0,R3; R0:=R0−R3
JMPR CC_Z,F; если разность равна нулю, то перейти по метке F
MOV R5,R6; R5←R6
F: SHL R0,#2; сдвиг влево на 2 бита
5.6.3. Условный переход со сравнением операндов
При этом условном переходе задаются две команды: команда сравнения
операндов (мнемокод CMP) и команда собственно условного перехода. При
этом результат сравнения операндов никуда не заносится, содержимое
регистров не меняется, но в результате выполнения операции сравнения
устанавливаются новые значения сигналов в регистре состояний.
Команды сравнения операндов имеют
вид
CMP R
w
,R
w
;
.
CMP R
w
,#data 16;
CMPВ R
b
,R
b
;
CMPВ R
b
,#data 8;
Пример 5.6.3
В программе
MOV R0,R5; R0←R5
MOV R3,R6; R3←R6
SUB R0,R3; R0:=R0−R3
JMPR cc_Z,F; если разность равна нулю, то перейти по метке F
Страницы
- « первая
- ‹ предыдущая
- …
- 21
- 22
- 23
- 24
- 25
- …
- следующая ›
- последняя »