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.