简单操作系统(1)十分钟完成的操作系统

时间:2022-08-12 14:31:28

参考<自己动手写操作系统>,实验环境为ubuntu 14.04LTS.

十分钟完成的操作系统

  1. 安装nasm.
    • 官网下载,nasm,下载*.tar.gz
    • 解压后,./configure
    • make
    • sudo make install
  2. 在某个路径下创建一个boot.asm,复制下边的代码到文件中
org 07c00h      ;告诉编译器程序加载到7c00处 
mov ax, cs  
mov ds, ax  
mov es, ax  
call DispStr    ;调用显示字符串例程 
jmp $  ;$表示当前行被汇编后的地址
DispStr:  
mov ax, BootMessage  ;把字符串的首地址传递给ax
mov bp, ax  
mov cx, 16  
mov ax, 01301h  
mov bx, 00ch  
mov dl, 0  
int 10h  
ret  
BootMessage:    db "Hello, OS world!"  
times 510-($-$$) db 0  ;$$表示一个节的开始被汇编后的地址
dw 0xaa55  

3.运行nasm boot.asm -o boot.img,生成软盘镜像
4.打开vm,新建虚拟机,到达Customize Hardware试,不要直接下一步,需要进行选择,下边给出图示
简单操作系统(1)十分钟完成的操作系统
简单操作系统(1)十分钟完成的操作系统
简单操作系统(1)十分钟完成的操作系统
简单操作系统(1)十分钟完成的操作系统
简单操作系统(1)十分钟完成的操作系统

5.配置完成后,直接打开虚拟机
简单操作系统(1)十分钟完成的操作系统

需要注意的地方:
1. 在NASM中,任何不被方括号[]括起来的标签或者变量名都被当作地址,因此,连MASM中出现的Offset关键字也就不再需要。因为不加[]就表示offset.

  • 下节学习:反汇编,操作系统程序的调试