如何启动我简单的hello world程序?

时间:2015-03-11 14:02:02

标签: c++ c assembly boot

假设我有一个简单的Hello world程序,它内置在C中。现在如何在启动PC时启动它?

我的愿望是制作简单的hello world操作系统。 我对CC++非常了解,我该如何启动它?请告诉我。我需要学习汇编语言吗?

如果是,那么在大会内部我需要先了解哪些内容?我应该去哪里参加大会(NASMMASM等等。)?

帮助将不胜感激!

1 个答案:

答案 0 :(得分:8)

您可以通过编写一个简单的引导程序来完成此操作。 This OSdev article向您展示了一种方法。

关于语言:任何编译语言(C / C ++)都会被编译成机器代码,这也是1-1可汇编到汇编指令的代码。所以,原则上你可以用C / C ++编写大部分的bootloader。

打印:"启动您自己的代码"当然,您没有任何驱动程序或任何标准库(因此,没有printf - 函数或cout)。但是,在x86中,低内存的某些部分(从0xa0000开始)在引导时直接映射到视频内存,这意味着您写入此部分内存的字节将以文本的形式出现在屏幕上。

汇编程序的选择:这真的只是品味问题。对于简单的汇编语言引导加载程序,您将要避免生成的二进制文件的任何特定格式。 nasm -f bin myfile.asm -o myBootsector只会将代码组装成原始二进制文件。

This post有更多详情。