参考<自己动手写操作系统>,实验环境为ubuntu 14.04LTS.
十分钟完成的操作系统
- 安装nasm.
- 官网下载,nasm,下载*.tar.gz
- 解压后,./configure
- make
- sudo make install
- 在某个路径下创建一个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试,不要直接下一步,需要进行选择,下边给出图示
5.配置完成后,直接打开虚拟机
需要注意的地方:
1. 在NASM中,任何不被方括号[]括起来的标签或者变量名都被当作地址,因此,连MASM中出现的Offset关键字也就不再需要。因为不加[]就表示offset.
- 下节学习:反汇编,操作系统程序的调试