PIPPIN Instruction Codes

Instruction Mnemonic Binary Code Effect
Load LOD #xxx 00010100 xxxxxxxx Load number xxx into accumulator
LOD xxx 00000100 xxxxxxxx Load contents of memory address xxx into accumulator
Store STO xxx 00000101 xxxxxxxx Store contents of accumulator in memory at address xxx
Halt HLT 00001111 00000000 Halt execution
"No Op" NOP 00001110 00000000 Perform no operation, but continue execution
Add ADD #xxx 00010000 xxxxxxxx Add number xxx to accumulator
ADD xxx 00000000 xxxxxxxx Add contents of memory address xxx to accumulator
Subtract SUB #xxx 00010001 xxxxxxxx Subtract number xxx from accumulator
SUB xxx 00000001 xxxxxxxx Subtract contents of memory address xxx from accumulator
Multiply MUL #xxx 00010010 xxxxxxxx Multiply accumulator by number xxx
MUL xxx 00000010 xxxxxxxx Multiply accumulator by contents of memory address xxx
Divide DIV #xxx 00010011 xxxxxxxx Divide accumulator by number xxx
DIV xxx 00000011 xxxxxxxx Divide accumulator by contents of memory address xxx
And AND #xxx 00011000 xxxxxxxx If number xxx and accumulator contents are both ≠ 0, store 1 in accumulator
AND xxx 00001000 xxxxxxxx If contents of address xxx and accumulator are both ≠ 0, store 1 in accumulator
Not NOT 00001001 00000000 If accumulator contains 0, set it to 1; otherwise set it to 0
Compare Zero CPZ xxx 00001010 xxxxxxxx If contents of address xxx = 0, set accumulator to 1; otherwise set it to 0
Compare Less CPL xxx 00001011 xxxxxxxx If contents of address xxx < 0, set accumulator to 1; otherwise set it to 0
Jump JMP xxx 00001100 xxxxxxxx Jump to address xxx
Jump on Zero JMZ xxx 00001101 xxxxxxxx If accumulator = 0, jump to address xxx; otherwise continue with next instruction