先弄个HelloWorld吧,虽然这个网上一大堆,不过不知道的人还是不少,就简单的弄一个吧。。。。。。。
系统启动时,第一步是BIOS自检(这个不管),然后从CMOS中设置的默认引导介质中加载第一个扇区(512字节)到内存的0x07C00处(0x0000:0x7C00),
之后,跳转执行。
所以,引导启动系统的第一部分就是对这512字节进行编程。。。
这次呢,就写一个简单的HelloWorld(启动后,在屏幕显示HelloWorld)。
其它功能不考虑,
下面我就开始整了,思想有写乱,你们讲究的看吧。
显示服务(Video Service——INT 10H)
13H号功能
入口:
AH = 13H
AL = 输出方式(用1号,具体为什么自己百度去)
BH = 页码(咱用0号的)
BL = 字符属性
CX = 字符串长度
DH,DL = (x, y) 坐标
ES:BP = 字符串地址
OK
开始吧
# bootasm.S 这里,扩展名必须大写,具体为什么,问GCC去
.globl start
start: # 入口地址
.code16 # 声明是16位代码(为什么启动时要用16位代码。。。。自己百度去,,,