ZHCU875Z August 2001 – October 2023 SM320F28335-EP
汇编器在处理每一个段时均假设它始于地址 0。当然,在存储器中不可能所有段都始于地址 0,因此链接器必须将段重定位。对于 COFF,重定位均与各自段中的地址 0 相关。对于 EABI,重定位与符号相关,而不是与段相关。
链接器将段重定位的方式是:
链接器使用重定位条目调整对符号值的引用。汇编器在可重定位的符号被引用时会创建一个重定位条目。然后链接器会使用这些条目在符号重新定位后修补引用。以下示例包含 TMS320C28x 器件的代码片断,汇编器会针对它们生成重定位条目。
1 .global X
2 00000000 .text
3 00000000 0080' LC Y ; Generates a relocation entry
00000001 0004
4 00000002 28A1! MOV AR1,#X ; Generates a relocation entry
00000003 0000
5 00000004 7621 Y: IDLE