Difference between revisions of "NOPP"

From Intellivision Wiki
Jump to: navigation, search
 
m (Protected "NOPP" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)))
 
(No difference)

Latest revision as of 09:01, 4 December 2010

Instruction NameNo Operation
MnemonicsNOPP
CP1610 Clock Cycles7
InterruptibleYes
Opcode Range$0208, $0228

The No Operation Branch opcode (NOPP) is a bit of an peculiarity in that it only exists for the sake of symmetry in the design of the Branch instructions. If you look through the details of the Branch family of instructions, you'll notice that there are 16 possible internal conditions on which a Branch decision can be based. The second half of those 16 are simply negated forms of the first half. However, the very first available Branch condition is to Branch unconditionally. Therefore, the only possible negation for an opcode that branches unconditionally is to have an opcode that does NOT branch unconditionally. Therefore, you have the NOPP opcode. It is the Branch instruction that never branches.

Oh, and best of all, just like all the other Branch opcodes, NOPP will even let you NOT branch in either direction. The format is below.

   Format - Decle #1    Format - Word #2 (unused)
   0000:0010:00d0:1000  aaaa:aaaa:aaaa:aaaa
where:
d indicates the direction of the branch such that: d == 0 indicates to branch in the forward direction d == 1 indicates to branch in the reverse direction
aaaaaaaaaaaaaaaa indicates the amount of offset, unused since this opcode never really branches

See the Branch opcode family documentation for more information.