← All workCase study 17
ARM CPU Emulator
An ARM processor implemented in software in C — fetching, decoding and executing real machine code, with a disassembler on the side.
Type
Systems
Status
Shipped
Context
Systems programming · Leeds Beckett University
Period
2026
Source
Public
(01) 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.
(02) Architecture
C · instruction decoder and disassembler · fetch-decode-execute cycle · register file and condition flag state machine
(03) What was built
- 01Decodes raw ARM machine code into human-readable assembly — 0xE3A00001 becomes `mov r0, #1`.
- 02Goes beyond translation and actually executes instructions, updating registers and status flags after each one.
- 03Implements the fetch-decode-execute cycle that every CPU runs, in software.
(04) Stack
C / ARM Assembly