8 bit cpu emulator with custom ISA
Go to file
krolxon deac6a4448 add add_ri, sub_ri 2026-01-05 19:46:19 +05:30
examples add add_ri, sub_ri 2026-01-05 19:46:19 +05:30
src add add_ri, sub_ri 2026-01-05 19:46:19 +05:30
.gitignore initial commit 2026-01-04 18:39:25 +05:30
Cargo.lock use clap for arguement parsing 2026-01-04 23:54:56 +05:30
Cargo.toml use clap for arguement parsing 2026-01-04 23:54:56 +05:30
LICENSE add LICENSE 2026-01-05 12:17:04 +05:30
README.md add add_ri, sub_ri 2026-01-05 19:46:19 +05:30

README.md

8-Bit CPU Emulator

CPU Architecture

  • Word Size
    • Data Width: 8 bits
    • Address width: 16 bits
    • Address space: 64 KB (0x0000-0xFFFF)

Supported Instructions

Instruction Syntax
MOV mov reg, imm OR mov reg, reg
ADD add reg, imm OR add r1, r2
SUB sub reg, imm OR add r1, r2
JMP jmp addr
JZ jz addr
JNZ jnz addr
CMP cmp reg, imm OR cmp reg, reg
HLT (Halt) hlt

Registers

Register Size Description
A 8-bit General
B 8-bit General
C 8-bit General
D 8-bit General
PC 16-bit Program Counter
SP 16-bit Stack pointer (unused for now)

Flags

Flag Description
Z Zero Flag
C Carry/Borrow

Usage

cargo run -- --f <examples/filename.asc>

Todo

  • Assembler
    • Lexer/Tokenizer
    • Add label support (supporting JMP/JZ/JNZ)
  • Add instructions
    • CMP
    • CALL
    • RET
  • Error handling
  • Build Debugger