如何从目标文件生成普通二进制文件?

Pratik Singhal

我应该如何从两个目标(.o)文件生成原始二进制文件?

我需要nasm -f bin编译.asm文件时产生的纯二进制格式,但要使用.o文件。

用普通的二进制文件表示我的文件仅包含指令,而不包含一些额外的信息,因为许多可执行文件都包含许多额外的有用信息。

有关此信息,请参见http://www.nasm.us/doc/nasmdoc7.html

PS:我想制作一个“普通二进制文件”以在QEMU中启动

克里斯多夫

这带回了回忆。我敢肯定有一种更好的方法可以通过链接描述文件来做到这一点,但是这是我年轻愚蠢的时候做的:

# compile some files
gcc -c -nostdlib -nostartfiles -nodefaultlibs -fno-builtin kernel.c -o kernel.o
gcc -c -nostdlib -nostartfiles -nodefaultlibs -fno-builtin io.c -o io.o

# link files and place code at known address so we can jump there from asm
ld -Ttext 0x100000 kernel.o io.o -o kernel.out

# get a flat binary
objcopy -S -O binary kernel.out kernel.bin

文件kernel.c开始于

__asm__("call _kmain");
__asm__("ret");

void kmain(void) { ... }

有趣的部分是用汇编器编写加载程序。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

二进制文件如何“二进制”?

来自分类Dev

如何打开程序生成的二进制文件?

来自分类Dev

如何反汇编fasm生成的二进制文件?

来自分类Dev

链接两个目标文件以生成一个二进制文件

来自分类Dev

如何下载二进制文件

来自分类Dev

如何附加二进制文件?

来自分类Dev

如何创建二进制文件?

来自分类Dev

如何查看二进制文件?

来自分类Dev

如何修复二进制文件?

来自分类Dev

如何使用gcc / ld将目标文件链接到原始二进制文件?

来自分类Dev

如何将* .o目标文件链接到内核二进制文件中

来自分类Dev

C通过二进制文件生成头文件

来自分类Dev

MsBuild:生成二进制文件而不是 zip 文件

来自分类Dev

静态链接的二进制文件如何小于动态链接的二进制文件?

来自分类Dev

CMake:如何在安装阶段后设置目标二进制文件?

来自分类Dev

二进制文件生成性能

来自分类Dev

使用生成的UBI二进制文件对NAND编程

来自分类Dev

如何从EXE文件中提取二进制文件?

来自分类Dev

如何从.py文件中获取二进制文件

来自分类Dev

为什么链接的二进制文件包含已使用的目标文件的文件名,如何将其删除?

来自分类Dev

如何使用GDB正确调试`go test -c`生成的二进制文件?

来自分类Dev

如何在objcopy生成的二进制图像文件中获取入口地址?

来自分类Dev

如何检查使用哪个编译器生成二进制文件

来自分类Dev

如何从交叉编译的二进制文件生成程序集?

来自分类Dev

如何防止Windows重新生成已删除的二进制文件?

来自分类Dev

如何合并分支并忽略flutter生成的二进制文件中的冲突?

来自分类Dev

如何生成 stm32 代码的二进制文件?

来自分类Dev

汇编文件,目标文件和二进制文件之间有什么区别?

来自分类Dev

如何指定chromedriver二进制文件的位置

Related 相关文章

  1. 1

    二进制文件如何“二进制”?

  2. 2

    如何打开程序生成的二进制文件?

  3. 3

    如何反汇编fasm生成的二进制文件?

  4. 4

    链接两个目标文件以生成一个二进制文件

  5. 5

    如何下载二进制文件

  6. 6

    如何附加二进制文件?

  7. 7

    如何创建二进制文件?

  8. 8

    如何查看二进制文件?

  9. 9

    如何修复二进制文件?

  10. 10

    如何使用gcc / ld将目标文件链接到原始二进制文件?

  11. 11

    如何将* .o目标文件链接到内核二进制文件中

  12. 12

    C通过二进制文件生成头文件

  13. 13

    MsBuild:生成二进制文件而不是 zip 文件

  14. 14

    静态链接的二进制文件如何小于动态链接的二进制文件?

  15. 15

    CMake:如何在安装阶段后设置目标二进制文件?

  16. 16

    二进制文件生成性能

  17. 17

    使用生成的UBI二进制文件对NAND编程

  18. 18

    如何从EXE文件中提取二进制文件?

  19. 19

    如何从.py文件中获取二进制文件

  20. 20

    为什么链接的二进制文件包含已使用的目标文件的文件名,如何将其删除?

  21. 21

    如何使用GDB正确调试`go test -c`生成的二进制文件?

  22. 22

    如何在objcopy生成的二进制图像文件中获取入口地址?

  23. 23

    如何检查使用哪个编译器生成二进制文件

  24. 24

    如何从交叉编译的二进制文件生成程序集?

  25. 25

    如何防止Windows重新生成已删除的二进制文件?

  26. 26

    如何合并分支并忽略flutter生成的二进制文件中的冲突?

  27. 27

    如何生成 stm32 代码的二进制文件?

  28. 28

    汇编文件,目标文件和二进制文件之间有什么区别?

  29. 29

    如何指定chromedriver二进制文件的位置

热门标签

归档