I am needing to jump to a very specific place in memory and in order to do this, I am needing to know how the GCC assembler puts .long into the final binary file.
.section ".flashconfig"
.long 0xFFFFFFFF
.long 0xFFFFFFFF
.long 0xFFFFFFFF
.long 0xFFFFFFFE
Which for my layout file, section .flashconfig
must start at memory address 0x400
. When I assemble the assembly file I get:
:10040000FFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFD
In intel hex format starting at memory address 0x0400
, that is 12 bytes of FF
and one byte FE
then three more bytes of FF
. This really makes it seem like it's reversed the bytes.
Is it the case that the program will jump to the address in the format inserted in the order entered in ASM .long 0x12345678
or will it jump to the location assembled in the hex 0x87654321
? Currently my
My specific processor is the Cortex-M4, I am using unified syntax.
User contributions licensed under CC BY-SA 3.0