n = numerical constant
a = address (two nibbles)
s = source register
d = destination register
Mnemonic |
Code |
Description |
---|---|---|
MOV |
0 s d |
s -> d |
MOVI |
1 n d |
n -> d |
AND |
2 s d |
s AND d -> d |
ANDI |
3 n d |
n AND d -> d |
ADD |
4 s d |
d + s-> d |
ADDI |
5 n d |
d + n-> d |
SUB |
6 s d |
d - s -> d |
SUBI |
7 n d |
d - n -> d |
CMP |
8 s d |
compare s and d |
CMPI |
9 n d |
compare n and d |
OR |
A s d |
s OR d -> d |
CALL |
B a a |
jump to subroutine at a a |
GOTO |
C a a |
goto a a |
BRC |
D a a |
branch if carry set |
BRZ |
E a a |
branch if zero |
MAS |
F 7 d |
move d to register bank 2 |
INV |
F 8 d |
invert d |
SHR |
F 9 d |
shift d right |
SHL |
F A d |
shift d left |
ADC |
F B d |
add carry to d |
SUBC |
F C d |
subtract carry from d |
DIN |
F D d |
get I/O input in d |
DOT |
F E s |
put d to I/O |
KIN |
F F d |
get keyboard input into d |
DISP |
F n s |
display n digits, beginning at register s |
HALT |
F 0 0 |
program stop |
NOP |
F 0 1 |
no operation |
DISOUT |
F 0 2 |
display off |
HXDZ |
F 0 3 |
hexadecimal to decimal conversion in reg D-E-F |
DZHX |
F 0 4 |
decimal to hexadecimal conversion in reg D-E-F |
RND |
F 0 5 |
generate random number in reg D-E-F (well, not really!) |
TIME |
F 0 6 |
fetch time of day in reg A-B-C-D-E-F |
RET |
F 0 7 |
return from subroutine |
CLEAR |
F 0 8 |
set all registers to 0 |
STC |
F 0 9 |
set carry flag |
RSC |
F 0 A |
reset carry flag |
MULT |
F 0 B |
multiplication reg 0-5 with reg 0-5 of bank 2 |
DIV |
F 0 C |
division reg 0-3 with reg 0-3 of bank 2 |
EXRL |
F 0 D |
exchange reg 0-7 of bank 1 with reg 0-7 of bank 2 |
EXRM |
F 0 E |
exchange reg 8-F of bank 1 with reg 8-F of bank 2 |
EXRA |
F 0 F |
exchange reg 0-7 with reg 8-f |