说明:把linux系统在vbox, VMware,qemu等虚拟机上跑。
Win下载地址: http://www.nasm.us/pub/nasm/releasebuilds/2.13.01/win32/
- 写代码:(以下是最小系统代码)
org 07c00h ; 告诉编译器程序加载到7c00处
mov ax, cs
mov ds, ax
mov es, ax
call DispStr ; 调用显示字符串例程
jmp $ ; 无限循环
DispStr:
mov ax, BootMessage
mov bp, ax ; es:bp = 串地址
mov cx, 16 ; cx = 串长度
mov ax, 01301h ; ah = 13, al = 01h
mov bx, 00ch ; 页号为0(bh = 0) 黑底红字(bl = 0Ch,高亮)
mov dl, 0
int 10h ; 10h 号中断
ret
BootMessage: db "Hello, OS world!"
times 510-($-$$) db 0 ; 填充剩下空间,使生成的二进制代码恰好为512字节
dw 0xaa55 ; 结束标志
3编译系统。
- 建设采用方法二。
方法一:如果nasm没有加到全局PATH坏境变量里的话,就要把上面的最小系统代码保存成Boot.asm文件,并放到nasm这个软件的安装目录下。
方法二:加全局变量。详细步骤请参见“宿主机环境--》Win7配置--》加全局变量方法”。
B.打开控制台(可通过新建一个内容为“start”的cmd.bat文件来打开),输入命令:nasm Boot.asm -o Boot.img 即可生成Boot.img文件。
当成软盘即可在虚拟机上运行。
Vbox上:存储--》添加软盘控制器,加入Boot.img。然后启动虚拟机,这个最小系统就跑起来啦。
5.拓展:可以用来跑linux0.11代码。