36 lines
913 B
Text
Executable file
36 lines
913 B
Text
Executable file
Instructions:
|
|
INP 0b0001 | +Adress
|
|
OUT 0b0010 | +Adress
|
|
LDA 0b0011 | +Adress
|
|
STA 0b0100 | +Adress
|
|
INC 0b0101 | no Adress
|
|
DEC 0b0110 | no Adress
|
|
JPP 0b0111 | +Adress/Label
|
|
JPZ 0b1000 | +Adress/Label
|
|
JPN 0b1001 | +Adress/Label
|
|
JPU 0b1010 | +Adress/Label
|
|
EOJ 0b1011 | no Adress
|
|
|
|
Instruction format, [] means optional:
|
|
instruction [mem_adress]; [Comment]
|
|
|
|
Memory:
|
|
32 Bit Data with
|
|
28 Bit Adresess-> 24Mb Memory
|
|
|
|
Instruction Layout:
|
|
XXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYY
|
|
X: Instruction Opcode (4bit)
|
|
Y: Memory Adress (28bit)
|
|
|
|
Labels will get resolved by a preprocessor and transformed to adresses on assembling time
|
|
A label can be defined at any position in a instruction (except in the comment) by writing $label_name.
|
|
So you could e.g. write
|
|
|
|
$label OUT 35
|
|
|
|
but also
|
|
|
|
OUT $label 35
|
|
|
|
Note that the first variant is recommendet for readability
|