stackprocessor/README.md

2.6 KiB

Stack based 8-Bit processor

Peripherals

Connected to a bidirectional bus.

Instruction set

Operand Code Instruction Signature Description
00000000 nop Just do nothing for a cycle straight
00010000 int interrupt Interrupt code to call on PIA
00100000 jmp label Jump to label if last operation had non zero result
00110000 wfi interrupt Wait for interrupt. If interrupt is zero, wait for any
00000100 push stack, rx Push the rx value to the index stack
00010100 pop stack, rx Pop into the register rx from index stack
00001000 read rdx Read from PIA into the target register
00011000 write rdx Write to PIA the value of target register
00000010 not rx negates rx
00010010 par rx parity of rx
00100010 cnt rx count of set bits in rx
00110110 and rx,r1 Store and of rx and r1 into rx
01000110 or rx,r1 Store or of rx and r1 into rx
01010110 xor rx,r1 Store xor of rx and r1 into rx
01100110 mov rx,r1 overwrite rx with r1
01110110 sl rx,r1 shift rx left by r1
10000110 sr rx,r1 shift rx right by r1
00001010 add rx,r1 Add r1 to rx
00011010 sub rx,r1 Subtract r1 from rx
00001110 seq rx,ry Set if rx = ry
00011110 slt rx,ry Set if rx < ry
00101110 sltu rx,ry set if abs(rx) < abs(ry)

Instruction Types

From To Type
00000000 11111110 Base Instructions
00000001 11111111 Possible extension