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 |