本来是用gas汇编器的ld -Ttext 0x0命令后,总是得到在一个代码仍然从0x200开头的文件。

这一度使我以为这是gas的设计错误或是怎么的。

还在昨天写的教程里留下错误的理解:

http://www.cnblogs.com/bombless/archive/2010/12/28/writing-X86-os-part1.html

 

今天又参考了一篇文章,

http://dev.csdn.net/htmls/31/31794.html

终于理解应该怎么办了。

以以下汇编代码为例:

 

.global start
.code16
.text
start:
movw $0xb800,%ax
movw %ax,%ds
movb $0x41,(
0)
movb $0x1f,(
1)
hlt

保存为文件gas.s。

 

只需要下面几个步骤,就可以生成一个只有代码的纯二进制指令文件gas.bin:

as -o gas.o gas.s

objcopy -O binary gas.o gas.bin

相关文章:

  • 2021-12-03
  • 2021-06-07
  • 2021-12-27
  • 2021-06-18
  • 2021-06-30
  • 2022-12-23
  • 2021-06-19
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-13
  • 2022-01-22
  • 2021-12-03
相关资源
相似解决方案