Boot Sector - Hello world

1. code

    bits 16
    org 7c00h
    mov ax, cs
    mov ds, ax
    mov es, ax
    call DispStr
    jmp $
DispStr:
    mov ax, BootMessage
    mov bp, ax
    mov cx, 16
    mov ax, 01301h
    mov bx, 000ch
    mov dl, 0
    int 10h
    ret
BootMessage:
    db "Hello, OS world!"
    times 510-($-$$) db 0
    dw 0xaa55

2. 编译成bin文件

nasm -f bin boot.asm -o boot.bin

3.运行

1) qemu

qemu-system-i386 boot.bin

2) 虚拟机从floppy启动

dd if=/dev/zero of=floppy.img bs=512 count=2880
dd status=noxfer conv=notrunc if=boot.bin of=floppy.img

vmware创建一个裸虚拟机,给虚拟机添加设备"Floppy Drive", Connection设置为"Use a floppy image", 文件路径选为floppy.img的路径,启动虚拟机。

3) usb启动

插入U盘,假设U盘对应的设备文件为/dev/sdb1

dd if=boot.bin of=/dev/sdb1

重起电脑,使其从U盘启动。

posted @ 2017-03-05 13:06  tanghuimin0713  阅读(517)  评论(0编辑  收藏  举报