C GNU比努蒂尔斯';二进制文件描述符库-格式示例

C GNU比努蒂尔斯';二进制文件描述符库-格式示例,c,gnu,executable-format,bfd,C,Gnu,Executable Format,Bfd,如标题所示。我试着阅读BFD的ELF代码,但这不是一个轻松的阅读。我还试图从文档中获取一些信息,但我需要一个示例来了解它是如何工作的。谁能给我举个简单的例子,让我知道如何定义可执行格式 编辑:看起来我没有正确地阐述这个问题。我不会问“如何创建自己的可执行格式规范?”,也不会问“好的ELF文档在哪里?”,而是问“如何使用GNU BFD实现自己的可执行格式?”。DOS COM文件是最简单的可能格式 在seg:0100h处加载最多64k减去256字节,设置DS、ES、SS=seg、SP=FFFFh并跳

如标题所示。我试着阅读BFD的ELF代码,但这不是一个轻松的阅读。我还试图从文档中获取一些信息,但我需要一个示例来了解它是如何工作的。谁能给我举个简单的例子,让我知道如何定义可执行格式


编辑:看起来我没有正确地阐述这个问题。我不会问“如何创建自己的可执行格式规范?”,也不会问“好的ELF文档在哪里?”,而是问“如何使用GNU BFD实现自己的可执行格式?”。

DOS COM文件是最简单的可能格式


在seg:0100h处加载最多64k减去256字节,设置DS、ES、SS=seg、SP=FFFFh并跳转到seg:0100h

我同意BFD文档有点缺乏。以下是一些更好的来源:

  • (第4节)
以下是几个可读的介绍:

还有一些不使用libbfd的示例:

你看了这里和这里吗


此外,研究BFD后端的MMO实现(如本文所述)(来源:)可能没有从ELF开始复杂…;-)

嗯,但是binutils的msdos格式缺少一些功能。。。正如大多数gnu代码一样,几乎没有任何文档——假设我在阅读代码时总是知道发生了什么。嗯,我想我必须重新表述我的问题。我没有问“如何创建自己的可执行格式规范”,也没有问“好的ELF文档在哪里”,而是问“如何使用GNU BFD实现自己的可执行格式”。你的问题现在意义不大,而不是更多。。。。。你能再进一步吗?我希望能够使用GNU工具链编译我的程序,但可执行文件应该以我定义的格式生成。好的,我现在明白了。谢谢你澄清这一点。