54 lines
2.6 KiB
Plaintext
54 lines
2.6 KiB
Plaintext
opcode | mnem. | SP | RP | T | N | R | PC |cycles
|
|
---------|-----------|------|--------|-------|--------|--------|--------|------
|
|
0000000X | NOP | SP | RETURN | T | N | RETURN | RETURN | 1
|
|
0000001X | RSHIFT | SP-1 | RETURN | expr. | [SP-1] | RETURN | RETURN | 1
|
|
0000010X | ADD | SP-1 | RETURN | expr. | [SP-1] | RETURN | RETURN | 1
|
|
0000011X | SUB | SP-1 | RETURN | expr. | [SP-1] | RETURN | RETURN | 1
|
|
00001XXX | LOGIC | SP-1 | RETURN | expr. | [SP-1] | RETURN | RETURN | 1
|
|
0001000X | SWAP | SP | RETURN | N | T | RETURN | RETURN | 1
|
|
0001001X | DUP | SP+1 | RETURN | T | T | RETURN | RETURN | 1
|
|
00010100 | OVER | SP+1 | RP | N | T | R | PC+1 | 1
|
|
00010101 | RDUP | SP | RP+1 | T | N | R | PC+1 | 1
|
|
00010110 | NLZ | SP | RP | expr. | N | R | PC+1 | 1
|
|
00010111 | MULT | SP | RP | expr. | expr. | R | PC+1 | 2
|
|
0001100X | LOAD | SP | RP | expr. | N | R | PC+1 | 1*
|
|
0001101X | STORE | SP-2 | RP | expr. | [SP-2] | R | PC+1 | 1*
|
|
00011100 | RDROP | SP | RP-1 | T | N | [RP-1] | PC+1 | 1
|
|
00011101 | POP | SP+1 | RP-1 | R | T | [RP-1] | PC+1 | 1
|
|
00011110 | PUSHPC | SP | RP+1 | T | N | PC+1 | PC+1 | 1
|
|
00011111 | PUSH | SP-1 | RP+1 | N | [SP-1] | T | PC+1 | 1
|
|
001XXXXX | IMMED | SP+1 | RP | expr. | T | R | PC+1 | 1
|
|
010XXXX0 | JUMP | SP-1 | RP | N | [SP-1] | R | TARGET | 1*
|
|
010XXXX1 | JUMP DROP | SP-2 | RP | expr. | [SP-2] | R | TARGET | 1*
|
|
011XXXX0 | CALL | SP-1 | CALL | N | [SP-1] | CALL | TARGET | 1*
|
|
011XXXX1 | CALL DROP | SP-2 | CALL | expr. | [SP-2] | CALL | TARGET | 1*
|
|
1XXXXXXX | MERGE | SP | RP | expr. | N | R | PC+1 | 1
|
|
|
|
RP:RETURN = opcode[0] ? (RP-1) : RP
|
|
R:RETURN = opcode[0] ? [RP-1] : R
|
|
PC:RETURN = opcode[0] ? R : (PC+1)
|
|
RP:CALL = cond(N) ? (RP+1) : RP
|
|
R:CALL = cond(N) ? (PC+1) : R
|
|
PC:TARGET = cond(N) ? (rel ? (PC+1+T) : T) : (PC+1)
|
|
|
|
(*) External device can insert additional wait states.
|
|
|
|
opcode | T:expr. | N:expr. |
|
|
-------|---------|----------|
|
|
RSHIFT | N >> T | --- |
|
|
ADD | N + T | --- |
|
|
SUB | N - T | --- |
|
|
NIP | T | --- |
|
|
AND | N & T | --- |
|
|
OR | N | T | --- |
|
|
XOR | N ^ T | --- |
|
|
NLZ | nlz(T) | --- |
|
|
MULT | msw <- N*T -> lsw |
|
|
LOAD | data in | --- |
|
|
STORE | [SP-1] | --- |
|
|
IMMED | immed | --- |
|
|
J DROP | [SP-1] | --- |
|
|
C DROP | [SP-1] | --- |
|
|
MERGE | T:merge | --- |
|
|
|