Krolyxon
Commit 4166b0e

Branches

Tags

Refs →

bench51README.md

54 lines · 1.3 KB · Markdown

1# 8-Bit CPU Emulator
2
3## CPU Architecture
4- Word Size
5 - **Data Width:** 8 bits
6 - **Address width:** 16 bits
7 - **Address space:** 64 KB (0x0000- 0xFFFF)
8
9## Supported Instructions
10
11| Instruction | Syntax |
12| ----------- | ------------ |
13| MOV | mov reg, imm OR mov reg, reg |
14| ADD | add r1, r2 |
15| SUB | sub r1, r2 |
16| JMP | jmp addr |
17| JZ | jz addr |
18| JNZ | jnz addr |
19| CMP | cmp reg, imm OR cmp reg, reg |
20| HLT (Halt) | hlt |
21
22
23## Registers
24| Register | Size | Description |
25| -------- | ------ | ------------------------------ |
26| A | 8-bit | General |
27| B | 8-bit | General |
28| C | 8-bit | General |
29| D | 8-bit | General |
30| PC | 16-bit | Program Counter |
31| SP | 16-bit | Stack pointer (unused for now) |
32
33## Flags
34| Flag | Description |
35| ----- | ------------ |
36| Z | Zero Flag |
37| C | Carry/Borrow |
38
39
40# Usage
41```bash
42cargo run -- --f <examples/filename.asc>
43```
44
45## Todo
46- [x] Assembler
47 - [x] Lexer/Tokenizer
48 - [x] Add label support (supporting JMP/JZ/JNZ)
49- [ ] Add instructions
50 - [x] CMP
51 - [ ] CALL
52 - [ ] RET
53- [ ] Error handling
54- [ ] Build Debugger