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

Raj*_*mar 3 c c++ boot assembly

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

我的愿望是制作简单的hello world操作系统.我有相当的知识就CC++,我怎么能启动呢?请告诉我.我需要学习汇编语言吗?

如果是,那么在装配内部我需要先了解什么?我应该在哪里去了大会(NASM,MASM等..)?

帮助将不胜感激!

Alf*_*rud 8

您可以通过编写一个简单的引导程序来完成此操作.这篇OSdev文章向您展示了一种方法.

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

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

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

这篇文章有更多细节.

  • @Rajkumar:请*请*按照答案中的第一个链接.[OSDev](http://wiki.osdev.org/Main_Page)是一个专门针对您提出的问题的网站*. (3认同)