我需要跳转到内存中的一个非常具体的位置,为了做到这一点,我需要知道GCC汇编程序如何将.long放入最终的二进制文件。
.section ".flashconfig"
.long 0xFFFFFFFF
.long 0xFFFFFFFF
.long 0xFFFFFFFF
.long 0xFFFFFFFE
对于我的布局文件,部分.flashconfig
必须从内存地址0x400
开始。当我汇编汇编文件时,我得到:
:10040000FFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFD
从内存地址0x0400
开始的英特尔十六进制格式,即FF
的12个字节和一个字节FE
,然后是FF
的另外三个字节。这真的让它看起来像是颠倒了字节。
程序是否会按照在ASM .long 0x12345678
中输入的顺序插入的格式跳转到地址,还是会跳转到以十六进制0x87654321
汇编的位置?目前我的
我的特定处理器是Cortex-M4,我使用的是统一语法。