> 文章列表 > [动手写操作系统]-02-开机运行系统并打印‘hello‘

[动手写操作系统]-02-开机运行系统并打印‘hello‘

[动手写操作系统]-02-开机运行系统并打印‘hello‘

文章目录

理解三个概念: 中断interrupts, CPU,寄存器registers

目标:让上一个静默的界面打印一些文本

我们将改进我们的无限循环引导扇区并在屏幕上打印一些东西。我们将为此提出中断。

我们尝试将\"Hello\"写到寄存器al, 字节0x0e写到ah (the higher part of ax),并提高中断’0x10`,这是视频服务的一般中断。

“ 0x0e” onah告诉视频中断,我们要运行的实际函数是’在tty模式下编写``al“ al”内容’\'。

我们只能在现实世界中设置一次TTY模式一次,我们无法确定“ AH”的内容是恒定的。 我们休眠时可能会在CPU上运行其他一些过程,无法正确清理,并在`ah’上留下垃圾数据。

在此示例中,我们不需要考虑这一点,因为我们是CPU上唯一运行的事情。

我们的引导代码如下 :

mov ah, 0x0e ; tty mode
mov al, \'H\'
int 0x10
mov al, \'e\'
int 0x10
mov al, \'l\'
int 0x10
int 0x10 ; \'l\' is still on al, remember?
mov al, \'o\'
int 0x10jmp $ ; jump to current address = infinite loop; padding and magic number
times 510 - ($-$$) db 0
dw 0xaa55