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 |
|