Description:

This instruction performs a one's complement of register Rd.

Operation:

Rd ← $FF - Rd

Syntax: Operands: Program Counter:

COM Rd 0 ≤ d ≤ 31 PC ← PC + 1

16-bit Opcode:

1001010ddddd0000

Status Register (SREG) and Boolean Formulae:

I

T

H

S

V

N

Z

C

-

-

-

0

1

S:N ⊕ V For signed tests.

V:0 Cleared.

N:R7 Set if MSB of the result is set; cleared otherwise.

Z:

Set if the result is $00; Cleared otherwise.

C:1 Set.

R (Result) equals Rd after the operation.

Example:

com r4 ; Take one's complement of r4
breq zero ; Branch if zero
...
zero: nop ; Branch destination (do nothing)

Words: 1 (2 bytes)

Cycles: 1