Now we enter the engine room. The processor (and the human reverse engineer) must break this 32-bit number into specific fields. An ARM instruction is divided into chunks called "bit fields."
0: e3a00000 mov r0, #0 4: e12fff1e bx lr hex to arm
Hexadecimal in a memory dump is usually stored byte by byte. The processor reads these bytes into registers. But in what order? Now we enter the engine room
It begins with a memory dump. You are staring at a screen, perhaps debugging a crashed application or analyzing a piece of embedded firmware. On the screen, you see a stream of hexadecimal numbers: The processor reads these bytes into registers
The story doesn't end with the translation. It ends with execution.
Before we can translate, we must understand the world these numbers live in. The ARM architecture is a design. One of its defining characteristics is uniformity.