Команда NEG - выполнить дополнение до двух
Описание:
Заменяет содержимое регистра Rd его дополнением до двух. Значение $80 остается
неизменным.
Операция:
(i) |
Rd <-- $00 - Rd |
|
Синтаксис |
Операнды: |
Счетчик программ: |
(i) |
NEG Rd |
0 < d < 31 |
PC <- PC + 1 |
16-разрядный код операции:
Булевы выражения регистра статуса (SREG)
H: |
R3*Rd3
Устанавливается если есть заем из бита 3, в ином случае очищается |
S: |
NЕV, Для проверок со знаком |
V: |
R7*R6*R5*R4*R3*R2*R1*R0
Устанавливается при переполнении дополнения до двух от подразумеваемого
вычитания из нуля, в ином случае очищается. Переполнение дополнения до
двух произойдет если и только если содержимое регистра после операции
(результат) будет $80. |
N: |
R7
Устанавливается если в результате установлен MSB, в ином случае
очищается |
Z: |
Rd7*R6*R5*R4*R3*R2*R1*R0
Устанавливается если результат $00, в ином случае очищается |
C: |
R7+R6+R5+R4+R3+R2+R1+R0
Устанавливается если есть заем в подразумеваемом вычитании из нуля, в
ином случае очищается. Флаг C будет устанавливаться во всех случаях, за
исключением случая, когда содержимое регистра после выполнения операции
будет $80. |
R: |
(Результат)соответствует Rd после выполнения команды |
Пример:
sub r11, r0 ; Вычесть r0 из r11
brpl positive ; Перейти если результат положительный
neg r11 ; Выполнить дополнение до двух r11
positive: nop ; Перейти по назначению (пустая операция)
Слов: 1 (2 байта)
Циклов: 1
|