Releases: Stokpan/E80
Releases · Stokpan/E80
E80 Toolchain Setup
A portable all-in-one package for writing and running E80 Assembly programs through VHDL simulation on Windows 10.
To get started, see the simulation example in the Readme.
Full Changelog: v3.6...v4.0
E80 Toolchain Setup
Archived release, updating ZS flags on MOV and LOAD:
+-------------------+-------+---------------+-----------------------+-------+
| Instruction | Hex | Mnemonic | Description | Flags |
+----+-------------------+-------+---------------+-----------------------+-------+
| 1 | 00000000 | 00 | HLT | PC ← PC | H |
| 2 | 00000001 | 01 | NOP | | |
| 3 | 00000010 nnnnnnnn | 02 nn | JMP n | PC ← n | |
| 4 | 00000100 nnnnnnnn | 04 nn | JC n | if C=1, PC ← n | |
| 5 | 00000101 nnnnnnnn | 05 nn | JNC n | if C=0, PC ← n | |
| 6 | 00000110 nnnnnnnn | 06 nn | JZ n | if Z=1, PC ← n | |
| 7 | 00000111 nnnnnnnn | 07 nn | JNZ n | if Z=0, PC ← n | |
| 8 | 00001000 nnnnnnnn | 08 nn | JS n | if S=1, PC ← n | |
| 9 | 00001001 nnnnnnnn | 09 nn | JNS n | if S=0, PC ← n | |
| 10 | 00001010 nnnnnnnn | 0A nn | JV n | if V=1, PC ← n | |
| 11 | 00001011 nnnnnnnn | 0B nn | JNV n | if V=0, PC ← n | |
| 12 | 00001110 nnnnnnnn | 0E nn | CALL n | PC+2 → [--SP]; PC ← n | |
| 13 | 00001111 | 0F | RETURN | PC ← [SP++] | |
| 14 | 00010rrr nnnnnnnn | 1r nn | MOV r,n | r ← n | ZS |
| 15 | 00011000 0rrr0rrr | 18 rr | MOV r1,r2 | r1 ← r2 | ZS |
| 16 | 00100rrr nnnnnnnn | 2r nn | ADD r,n | r ← r+n | CZSV |
| 17 | 00101000 0rrr0rrr | 28 rr | ADD r1,r2 | r1 ← r1+r2 | CZSV |
| 18 | 00110rrr nnnnnnnn | 3r nn | SUB r,n | r ← r+(~n)+1 | CZSV |
| 19 | 00111000 0rrr0rrr | 38 rr | SUB r1,r2 | r1 ← r1+(~r2)+1 | CZSV |
| 20 | 01000rrr nnnnnnnn | 4r nn | AND r,n | r ← r&n | ZS |
| 21 | 01001000 0rrr0rrr | 48 rr | AND r1,r2 | r1 ← r1&r2 | ZS |
| 22 | 01010rrr nnnnnnnn | 5r nn | OR r,n | r ← r|n | ZS |
| 23 | 01011000 0rrr0rrr | 58 rr | OR r1,r2 | r1 ← r1|r2 | ZS |
| 24 | 01100rrr nnnnnnnn | 6r nn | XOR r,n | r ← r^n | ZS |
| 25 | 01101000 0rrr0rrr | 68 rr | XOR r1,r2 | r1 ← r1^r2 | ZS |
| 26 | 01110rrr nnnnnnnn | 7r nn | ROR r,n | r>>n (r<<8-n) | ZS |
| 27 | 01111000 0rrr0rrr | 78 rr | ROR r1,r2 | r1>>r2 (r1<<8-r2) | ZS |
| 28 | 10000rrr nnnnnnnn | 8r nn | STORE r,[n] | r → [n] | |
| 29 | 10001000 0rrr0rrr | 88 rr | STORE r1,[r2] | r1 → [r2] | |
| 30 | 10010rrr nnnnnnnn | 9r nn | LOAD r,[n] | r ← [n] | ZS |
| 31 | 10011000 0rrr0rrr | 98 rr | LOAD r1,[r2] | r1 ← [r2] | ZS |
| 32 | 10100rrr | Ar | LSHIFT r | (C,r)<<1; V ← S flip | CZSV |
| 33 | 10110rrr nnnnnnnn | Br nn | CMP r,n | SUB, discard result | CZSV |
| 34 | 10111000 0rrr0rrr | B8 rr | CMP r1,r2 | SUB, discard result | CZSV |
| 35 | 11000rrr nnnnnnnn | Cr nn | BIT r,n | AND, discard result | ZS |
| 36 | 11001000 0rrr0rrr | C8 rr | BIT r1,r2 | AND, discard result | ZS |
| 37 | 11010rrr | Dr | RSHIFT r | (r,C)>>1; V ← S flip | CZSV |
| 38 | 11100rrr | Er | PUSH r | r → [--SP] | |
| 39 | 11110rrr | Fr | POP r | r ← [SP++] | |
+----+-------------------+-------+---------------+-----------------------+-------+
Full Changelog: v3.5...v3.6