美文网首页
30天自制os笔记01

30天自制os笔记01

作者: 叮宕 | 来源:发表于2018-07-05 22:38 被阅读38次

    我不是一个记笔记的人,从小到大都不是,所以这个强行不算笔记:)

    《30天自制操作系统》这本书很有名,无奈一直没有机缘看,现在虽然看了,但是我读书慢(不是读书的速度慢,而是时间慢。因为我书读的杂,可能翻上个一章就撂在那里了,一停就是数年)。

    01呢,主要内容就是开机可以显示出一个hello word,这个要比一般语言的复杂点,直接上汇编,ubuntu上的nasm挺好用的:

    org 0x7c00
    jmp  entry
    db 0x00
    db  "helloOSX"
    dw  512
    db  1
    dw  1
    db  2
    dw  224
    dw  2880
    db  0xf0
    dw  9
    dw  18
    dw  2
    dd  0
    dd  2880
    db  0,0,0x29
    dd  0xffffffff
    db  "myosudisk  "
    db  "fat12   "
    resb 18
    
    
    entry:
    mov ax,0x0
    mov ss,ax
    mov sp,0x7c00
    mov ds,ax
    mov es,ax
    mov ah,0xe
    mov bx,0xf
    mov si,msg
    
    typeonechar:
    mov al,[si]
    add si,1
    cmp al,0
    je fin
    int 0x10
    jmp typeonechar
    
    fin:
    hlt
    jmp fin
    
    msg:
    db 0x0a
    db "hello crazy"
    db 0x0a
    db 0x00
    
    times 510-($-$$) db 0x00
    db 0x55,0xaa
    

    值得注意的是,一般网上搜到的笔记,在entry这里它们都是直接用db打的机器码,最开头并没有org这句。
    因为我没打org这句,所以出来一直是个大S,开始百思不得解。机器码也不懂,我就用网上的变成boot.img后反汇编,结果发现entry是一样的,只不过je,变成了jz。
    所以说地址很重要,所以说段寄存器初始化很重要。

    ps. qemu真的好用。

    相关文章

      网友评论

          本文标题:30天自制os笔记01

          本文链接:https://www.haomeiwen.com/subject/naymuftx.html