ARM ASM Interrupt Vectors (.long in GNU ASM)

0

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.

assembly
gnu
long-integer
bin
asked on Stack Overflow Dec 4, 2017 by UpTide

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0