Assembler/design.txt

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