Команда CPC - cравнить с учетом переноса
Описание:
Команда выполняет сравнение содержимого двух регистров Rd и Rr и учитывает также предшествовавший перенос. Содержимое регистров не изменяется. После этой команды можно выполнять любые условные переходы.
Операция:
(i) |
Rd = Rr = C |
|
Синтаксис |
Операнды: |
Счетчик программ: |
(i) |
CPC Rd, Rr |
0 < d < 31,0 < r < 31 |
PC <- PC + 1 |
16-разрядный код операции:
Булевы выражения регистра статуса (SREG)
H: |
Rd3*Rr3+Rr3*R3+R3*Rd3
Устанавливается если есть заем из бита 3, в ином случае очищается |
S: |
NEV, Для проверок со знаком |
V: |
Rd7*Rd7*R7+Rd7*Rr7*R7
Устанавливается если в результате операции образуется переполнение
дополнения до двух, в ином случае очищается |
N: |
R7 Устанавливается если в результате установлен MSB, в ином случае очищается |
Z: |
R7*R6*R5*R4*R3*R2*R1*R0*Z
Предшествующее значение остается неизменным если результатом является ноль, в ином случае очищается |
C: |
Rd7*Rr7+Rr7*R7+R7*Rd7
Устанавливается если абсолютное значение Rr плюс предшествовавший
перенос больше абсолютного значения Rd, в ином случае очищается |
R: |
(Результат) после выполнения команды |
Пример:
; Сравнить r3 : r2 с r1 : r0
cp r2, r0 ; Сравнить старший байт
cpc r3, r1 ; Сравнить младший байт
brne noteq ; Перейти если не равно
. . .
noteq: nop ; Перейти по назначению (пустая операция)
Слов: 1 (2 байта)
Циклов: 1
|