Skip to main content
4 votes

ARM Thumb2 register usage

This is all documented in the ARM Architecture Procedure Call Standard (AAPCS) ARM IHI0042. There may be more recent versions. The short version: R0-R3 are for passing arguments, R12 is a scratch ...
Robert Sexton's user avatar
2 votes

ARM Thumb2 register usage

Typically, the push r5-r9 instruction is a way to save the content of these registers (ie r5, r6, r7, r8, r9) on the stack, then the pop r5-r9 is restoring the saved values before leaving the function ...
perror's user avatar
  • 19.2k
2 votes

ARM/THUMB assembly mismatch between binaries causes crash

The difference is that the first set of instructions are THUMB2 instructions whereas your library's version is using ARM instructions. (The giveaway is in the instruction lengths - mostly 2 sometimes ...
Ian Cook's user avatar
  • 2,558
1 vote

Setting Breakpoints on Thumb Instructions in GDB

when I set a breakpoint at say 0x010451 It's critical to first understand that there is actually no such valid address for an instruction. On an ARM processor, instructions are always aligned to ...
Chris Stratton's user avatar
1 vote

Confused about a firmware binary

After searching for the constant 'XLNX', it turns out this firmware file format is defined here. You're lucky because the encryption field is set to 0x0 (None). Now the question is, what do you ...
wisk's user avatar
  • 1,179
1 vote

How ida choose arm Thumb/Thumb2

ALT+G switches ARM\Thumb\Thumb2. I guess IDA uses heuristics to do that, e.g. if you see BX or BLX to an address that doesn't fit 4 bytes then it must be Thumb mode.
Jonathan Bar Or's user avatar

Only top scored, non community-wiki answers of a minimum length are eligible