Krolyxon
Commit 57bbca6

Branches

Tags

Refs →

bench51README.md

53 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 |
14| ADD | add r1, r2 |
15| SUB | sub r1, r2 |
16| JMP | jmp addr |
17| JZ | jz addr |
18| JNZ | jnz addr |
19| HLT (Halt) | hlt |
20
21
22## Registers
23| Register | Size | Description |
24| -------- | ------ | ------------------------------ |
25| A | 8-bit | General |
26| B | 8-bit | General |
27| C | 8-bit | General |
28| D | 8-bit | General |
29| PC | 16-bit | Program Counter |
30| SP | 16-bit | Stack pointer (unused for now) |
31
32## Flags
33| Flag | Description |
34| ----- | ------------ |
35| Z | Zero Flag |
36| C | Carry/Borrow |
37
38
39# Usage
40```bash
41cargo run -- --f <examples/filename.asc>
42```
43
44## Todo
45- [x] Assembler
46 - [x] Lexer/Tokenizer
47 - [x] Add label support (supporting JMP/JZ/JNZ)
48- [ ] Add instructions
49 - [ ] CMP
50 - [ ] CALL
51 - [ ] RET
52- [ ] Error handling
53- [ ] Build Debugger