当前位置:  开发笔记 > 编程语言 > 正文

ELF格式的可重定位符号(汇编语言)

如何解决《ELF格式的可重定位符号(汇编语言)》经验,为你挑选了1个好方法。

我们正在为客户端架构开发GNU Assembler的端口.现在面临的问题是:

如果指令的立即操作数是涉及多个可重定位符号的表达式,那么它是如何在elf格式的输出文件中处理的.在这种情况下产生的搬迁信息是什么?

例如:

j label1 + label2

其中label1和label2在可重定位部分中定义,它们可能是相同的部分或不同的可重定位部分.



1> 小智..:

ELF本身并不了解说明.它知道指令中符号偏移的特定编码.在汇编程序中,您需要输出两个重定位记录,每个记录具有相应的[地址,类型,符号]三元组,以正确修补指令的该部分.链接器甚至不一定知道这两个记录指向同一条指令.

ELF重定位类型完全取决于CPU(或者更确切地说,取决于ISA),因此您可以自由定义新架构所需的任何重定位.

没有指令编码的细节,很难更具体.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有