OS学习笔记(1)

来源:互联网 发布:java 短网址 编辑:程序博客网 时间:2024/06/11 01:43

使用汇编语言(nasm汇编器)实现一个bootsect,在屏幕上打印一个字符串。

boot.asm

    org 07c00h       ; BIOS加载bootsect到7c00地址,                     ; 所以编译第一条指令在7c00位置    ; 取得所在代码段(CS)值,初始化DS和ES,使代码数据指向同一段                     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 = 13h, AL = 10h     mov bx, 000ch    ; BH = 0h (页0), BL = 0ch (黑底红字)    mov dl, 0    int 10h    retBootMessage:    db "Hello, OS World!"; 填充为512字节,最后为55aa(识别为启动设备)times 510 - ($ - $$)  db 0 dw 0xaa55

编译 nasm boot.asm -o boot.bin 生成boot.bin二进制文件

运行 qemu boot.bin

原创粉丝点击