Difference between revisions of "SWAP"

From Intellivision Wiki
Jump to: navigation, search
(No difference)

Revision as of 20:12, 14 January 2005

Instruction NameSwap Bytes
MnemonicSWAP
CP1610 Clock Cycles6 or 8
InterruptibleNo
Opcode Range$0040-$0047
Input FlagsNone
Output FlagsSign Flag, Zero Flag

The Swap Bytes (SWAP) instruction can perform two very different functions depending on the "double swap" indicator. A single swap trades the lowest eight bits in a register with the upper eight bits. A double swap essentially copies the lowest eight bits in a register to the upper eight bits. Regardless of which swap is specified, the CP1610 then sets or clears the Sign Flag and [[Zero Flag] according to the resulting value. The opcode format is as follows.

   0000:0000:0100:1srr
where: s indicates the type of swap such that: s == 0 indicates a single swap s == 1 indicates a double swap
rr indicates the target register such that: rr == 00 indicates register R0 rr == 01 indicates register R1 rr == 10 indicates register R2 rr == 11 indicates register R3