Challenge - 5 Problems
Hexadecimal Mastery in ARM
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ trace
intermediateTrace the hexadecimal value in a register after an addition
Given the ARM assembly instructions below, what is the hexadecimal value stored in register R1 after execution?
ARM Architecture
MOV R0, #0x1A MOV R1, #0x2F ADD R1, R1, R0
Attempts:
2 left
💡 Hint
Add the hexadecimal values in R0 and R1 carefully.
✗ Incorrect
R0 holds 0x1A (26 decimal), R1 holds 0x2F (47 decimal). Adding 26 + 47 = 73 decimal, which is 0x49 in hexadecimal.
🧠 Conceptual
intermediateUnderstanding memory address representation in hexadecimal
Why are memory addresses in ARM architecture commonly shown in hexadecimal format instead of decimal?
Attempts:
2 left
💡 Hint
Think about how computers organize memory and how humans read numbers.
✗ Incorrect
Hexadecimal groups bits in sets of four, matching byte boundaries, making it concise and easier to read than binary or long decimal numbers.
❓ identification
advancedIdentify the hexadecimal value stored at a memory address
An ARM processor reads the following 4 bytes from memory starting at address 0x1000: 0xDE, 0xAD, 0xBE, 0xEF. What 32-bit hexadecimal value does it represent assuming little-endian format?
Attempts:
2 left
💡 Hint
In little-endian, the least significant byte is stored at the lowest address.
✗ Incorrect
Little-endian stores bytes in reverse order: 0xDE at 0x1000 is the least significant byte, so the 32-bit value is 0xEFBEADDE.
❓ Comparison
advancedCompare hexadecimal and binary representations of a register value
Register R2 contains the value 0x3C. Which of the following binary values correctly represents this hexadecimal value?
Attempts:
2 left
💡 Hint
Convert each hex digit to 4 binary bits.
✗ Incorrect
Hex 3 is 0011 and C is 1100, combined as 00111100.
🚀 Application
expertCalculate the memory offset in hexadecimal
An ARM instruction loads a value from memory address 0x2000 into a register. The instruction uses an offset of 0x1C. What is the final memory address accessed by the instruction?
Attempts:
2 left
💡 Hint
Add the base address and the offset in hexadecimal.
✗ Incorrect
0x2000 + 0x1C = 0x201C. Hex addition is similar to decimal but base 16.
