Описание:
Команда выполняет сравнение содержимого двух регистров Rd и Rr. Содержимое регистров не изменяется. После этой команды можно выполнять любые условные переходы.
Операция:
(i) | Rd = Rr | ||
Синтаксис | Операнды: | Счетчик программ: | |
(i) | Cp Rd, Rr | 0 < d < 31,0 < r < 31 | PC <- PC + 1 |
16-разрядный код операции:
0001 | 01rd | dddd | rrrr |
Булевы выражения регистра статуса (SREG)
|
||||||||
|
H: | Rd3*Rr3+Rr3*R3+R3*Rd3 Устанавливается если есть заем из бита 3, в ином случае очищается |
S: | NEV, Для проверок со знаком |
V: | Rd7*Rd7*R7+Rd7*Rr7*R7 Устанавливается если в результате операции образуется переполнение дополнения до двух, в ином случае очищается |
N: | R7 Устанавливается если в результате установлен MSB, в ином случае очищается |
Z: | Rd7*Rr7+Rr7*R7+R7*Rd7 Устанавливается если результат $00, в ином случае очищается |
C: | Rd7*Rr7+Rr7*R7+R7*Rd7 Устанавливается если абсолютное значение Rr больше абсолютного значения Rd, в ином случае очищается |
R: | (Результат) после выполнения команды |
Пример:
cp r4, r19 ; Сравнить r4 с r19 brne noteq ; Перейти если r4 <> r19 . . . noteq: nop ; Перейти по назначению (пустая операция)
Слов: 1 (2 байта)
Циклов: 1