Link Search Menu Expand Document

Instruction Set


No Operation

00000


Syntax

NOP



Load Data

00001   00010   00011

Load data from the given address into register  A  -  C .


Syntax

AIN 〈 Address 〉
BIN 〈 Address 〉
CIN 〈 Address 〉



Load Immediate

00100   00101

Load immediate value into register  A  -  B .


Syntax

LDIA 〈 Value 〉
LDIB 〈 Value 〉



Expansion Port

00110   00111

Read from / write to the expansion port to / from register B.


Syntax

Expansion Port 🠖 B

RDEXP

Expansion Port 🠔 B

WREXP



Store Value

01000   01001

Store the register value at the given memory address.


Syntax

A 🠖 Memory

STA 〈 Address 〉

C 🠖 Memory

STC 〈 Address 〉



Math

01010   01011   01100   01101

Execute the mathematic operation on
register A & B and save the result in A.


Syntax

A  +  B  🠖  A

ADD

A    -    B  🠖  A

SUB

A  ×  B  🠖  A

MULT

A  ÷  B  🠖  A

DIV



Jump

01110   01111   10000

Jumps to the given instruction position,
which intern sets the program counter.


Syntax

JMP 〈 Value 〉

Jump if register A is zero

JMPZ 〈 Value 〉

Jump if the carry bit is set

JMPC 〈 Value 〉



Exchange Memory

10001   10010

Use register As value as memory address
to either load or store a memory value.


Syntax

Memory  🠖  A

LDAIN

B  🠖  Memory

STAOUT



LDLGE

10011

Use value directly after instruction
as address to copy from memory
to reg A and advance counter by 2.


Syntax

LDLGE



STLGE

10100

Use value directly after counter as
address, then copy value from reg A
to memory and advance counter by 2.


Syntax

STLGE



Swap

10101   10110

Swaps two registers with each other
& as a side-effect overrides the third.


Syntax

A  ⟷  B   Overrides C

SWP

A  ⟷  C   Overrides B

SWPC



Halt

10111

Stop the clock and thus execution.


Syntax

HLT