怎样写一个简单的操作系统(7)
时间:2026-01-15
时间:2026-01-15
怎样写一个简单的操作系统
mylabel: db 'Message here', 0
在汇编代码中,我们就可以知道一个以0结尾的字符串能通过mylabel: position找到。我们还可以设置单个字节的值,然后在其他地方像一个变量一样使用它,看下面的代码:
foo: db 0
现在foo:在代码中指向单字节,在这种情况下,Mike OS将是可写的,因为整个操作系统都被拷贝到了内存中。因此,你可以使用下面的指令:
mov byte al, [foo]
这条指令的意思是把foo指向的一个字节传送到al寄存器中。
这就是X86体系汇编语言的基本要点,已经足够让你开始后面的学习了。当你编写一个操作系统的时候,随着你的进展,你需要学习更多的汇编知识和其他知识,你可以参考Resources部分的辅导资料(译注:没有找到所谓的辅导资料)。
第一个操作系统
现在,你已经可以开始编写您的第一个操作系统内核了!当然,这将是一个极其精简的部分,仅仅是一个512字节的引导扇区,就跟之前叙述的一样,但是,它是您进行进一步探索的一个起点。复制粘贴下面的代码到一个名为myfirst.asm的文件中,并把它保存到你的home目录——这就是你的第一个操作系统的源代码。O(∩_∩)o
BITS 16
start:
mov ax, 07C0h ; Set up 4K stack space after this bootloader
add ax, 288 ; (4096 + 512) / 16 bytes per paragraph
mov ss, ax
mov sp, 4096
mov ax, 07C0h ; Set data segment to where we're loaded
mov ds, ax
mov si, text_string ; Put string position into SI
call print_string ; Call our string-printing routine
jmp $ ; Jump here - infinite loop!