SystemsShippedPublic
ARM CPU Emulator
Systems programming · Leeds Beckett University2026
An ARM processor implemented in software in C — fetching, decoding and executing real machine code, with a disassembler on the side.
C
// stack
C
ARM Assembly
// architecture
C · instruction decoder and disassembler · fetch-decode-execute cycle · register file and condition flag state machine
// overview
A software implementation of an ARM processor written in C. It runs the fetch-decode-execute cycle over real ARM machine code, updating registers and condition flags exactly as the hardware would, and doubles as a disassembler that turns raw hex opcodes back into readable assembly.
// what was built
- ·Decodes raw ARM machine code into human-readable assembly — 0xE3A00001 becomes `mov r0, #1`.
- ·Goes beyond translation and actually executes instructions, updating registers and status flags after each one.
- ·Implements the fetch-decode-execute cycle that every CPU runs, in software.