1.代码
boot.asm
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,000ch ;页号为0(BH=0)黑底红字(BL=0ch,高亮)
mov dl,0
int 10h ;10h号中断
ret
BootMessage:
db "Hello, OS world!"
times 510-($-$$) db 0 ;填充剩下的空间,是生成的二进制代码恰好为512字节
dw 0xaa55 ;结束标志
bochsrc //没有后缀,bochsrc文件和a.img以及boot.bin放在同一目录下
display_library:sdl
floppya:1_44=a.img,status=inserted
boot:floppy
2.编译连接
> nasm boot.asm -o boot.bin
> bximage
> fd
> 1.44
> a.img
> dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc
3.启动bochs
> bochs -f bochsr