我最近有一个想法开始开发自己的操作系统.在阅读了我认为可以帮助我完成这项任务的不同网站上的许多文章后,我想我现在可以开始了.(顺便说一句,我使用的是Ubuntu 14.10 x64)
由于软盘是开发操作系统最简单的存储介质,我购买了3.5英寸软盘驱动器.
我使用NASM作为汇编编译器,qemu作为模拟器.使用dd命令,我将一个现有的和空的(就文件而言)软盘克隆到一个名为floppy.img.bak的文件中.
之后,我在x86程序集中编写了一个简单的bootloader:
bootloader.asm
org 7C00h
jmp 0x0000:start ;go
msg db 'Loading Kernel...', 0
start:
;update the segment registers
mov ax, cs
mov ds, ax
mov es, ax
mov si, msg
print: ;prints a string
lodsb ;load next char
cmp al, 0 ;if null terminator...
je reset ;...jump to reset:
mov ah, 0Eh ;print AL
mov bx, 7
int 10h
jmp print ;if not null terminator, continue printing
reset: ;resets the floppy drive
mov ax, …
Run Code Online (Sandbox Code Playgroud)