MSP430 - Команда INV
*INV[.W] | Инвертирование получателя | |
*INV.B | Инвертирование получателя | |
Синтаксис | INV dst INV.B dst |
|
Операция | .NOT.dst -> dst | |
Эмуляция | XOR #0FFFFh,dst | |
Эмуляция | XOR.B #0FFh,dst | |
Описание | Операнд получателя инвертируется. Исходное содержимое теряется. Устанавливается, если результат отрицательный; сбрасывается, если положительный |
|
Биты статуса | N: | |
Z: | Устанавливается, если dst содержал 0FFFFh, в противном случае сбрасывается; Устанавливается, если dst содержал 0FFh, в противном случае сбрасывается |
|
C: | Устанавливается, если результат не ноль, в противном случае сбрасывается (= .NOT. Zero) Устанавливается, если результат не ноль, в противном случае сбрасывается (= .NOT. Zero) |
|
V: | Устанавливается, если исходное содержимое операнда было отрицательное, в противном случае сбрасывается | |
Биты режима | Биты OSCOFF, CPUOFF и GIE не изменяются | |
Пример | Над содержимым регистра R5 выполняется операция отрицания (дополнение до двух).
MOV #00AEh,R5 ; R5 = 000AEh INV R5 ; инвертирование R5, R5 = 0FF51h INC R5 ; теперь R5 инвертирован, R5 = 0FF52h |
|
Пример | Над содержимым байта памяти LEO выполняется операция отрицания.
MOV #0AEh,LEO ; MEM(LEO) = 0AEh INV.B LEO ; инвертирование LEO, MEM(LEO) = 051h INC.B LEO ; MEM(LEO) инвертирован, MEM(LEO) = 052h |