Added new logic instructions and test program. ASM markers may now start a line with an instruction. Improved logic in location class.
71 lines
1.1 KiB
Plaintext
71 lines
1.1 KiB
Plaintext
Features
|
|
- 4 16-bit Registers
|
|
- 255 8-bit Flag Registers
|
|
- 255 8-bit Ports
|
|
- 0 console in/out
|
|
- 1 tape in/out
|
|
- 2-32 Reserved
|
|
- Others Implementation Specific
|
|
- Program Counter
|
|
- Call Stack 16 x 16-bit
|
|
- 64K x 8-bit Memory
|
|
- MSB / big-endian
|
|
|
|
Registers (R) A-D -> 0-3
|
|
Marker (:) :XYZ
|
|
|
|
Locations (@)
|
|
Code ASM Type Values
|
|
0x0 P Port 0-255 | 0xFF
|
|
0x1 R Register A-D
|
|
0x2 M Memory 0-65535 | 0xFFFF
|
|
0x3 # Immediate 0-65535 | 0xFFFF | 'a' | "a"
|
|
0x4 F Flag 0-255 | 0xFF
|
|
0x5 A Address In Register A-D
|
|
|
|
Instructions
|
|
|
|
Code ASM
|
|
Misc
|
|
0x00 NOP
|
|
Registers
|
|
0x10 LOAD R @
|
|
0x11 SAVE R @
|
|
0x12 LOADH R @
|
|
0x13 LOADL R @
|
|
0x14 SAVEH R @
|
|
0x15 SAVEL R @
|
|
Accumulator
|
|
0x20 CLR R
|
|
0x21 ADD R @
|
|
0x22 SUB R @
|
|
0x23 DIV R @
|
|
0x24 MUL R @
|
|
0x25 INC R
|
|
0x26 DEC R
|
|
Logic
|
|
0x30 NOT R
|
|
0x31 AND R @
|
|
0x32 OR R @
|
|
0x33 XOR R @
|
|
0x34 SHL R 0-7 Shift Left
|
|
0x35 SHR R 0-7 Shift Right
|
|
0x36 BTS R 0-7 Bit Set
|
|
0x37 BTC R 0-7 Bit Clear
|
|
Stack
|
|
0x40 CALL #|:
|
|
0x41 RET
|
|
Program Flow
|
|
0x50 HALT
|
|
0x51 JMP #|:
|
|
0x52 JZ R #|:
|
|
0x53 JNZ R #|:
|
|
0x54 JBS R 0-7 #|:
|
|
0x55 JBC R 0-7 #|:
|
|
|
|
Program Format
|
|
[...ASM...]
|
|
MEMORY
|
|
0x100 "string abcd"
|
|
100 0x00 00 00
|