zoukankan      html  css  js  c++  java
  • 一个小bootloader

    (这是学习计算机启动过程和汇编的时候写的)

    计算机启动流程:

    加电初始化 -> BIOS自检 -> BIOS初始化 -> 运行bootloader

    在BIOS完成初始化之后, 会将启动盘刚开始的512B载入到内存0x7c00处

    汇编代码:boot.asm

    org 0x7c00
    base_sp equ 0x7c00
    start:
        mov ax,cs
        mov ds,ax
        mov es,ax
        mov ss,ax
        mov sp,base_sp
        
    clear_screen:
        mov ax,0x0600
        mov bx,0x0700
        mov cx,0
        mov dx,0x0184
        int 0x10
    
    show_message:
        mov ax,ds
        mov es,ax
        mov bp,bootmessage
        mov ax,0x1301
        mov bx,0x000f
        mov cx,endbootmessage-bootmessage
        mov dx,0x0000
        int 0x10
        
        jmp $
        
    bootmessage:
        db "start booting with fat12"
    endbootmessage:
    
    ;=== fill zero until whole sector
        times 510 - ($ -$$) db 0
        dw 0xaa55
    
    

    生成镜像(linux环境, 需要安装nasm):

    nasm -f bin boot.asm -o boot.bin
    dd if=boot.bin of=boot.img bs=512 count=1
    dd if=/dev/zero of=boot.img bs=512 count=2879 conv=notrunc oflag=append
    
  • 相关阅读:
    php判断远程图片是否防盗链
    php获取远程图片url生成缩略图的方法
    qq zone g_tk
    zend studio aptana
    qq音乐接口
    function https_request
    Eclipse 汉化
    php 邮箱替换*
    获取顶级域名函数
    weixin oauth api 使用
  • 原文地址:https://www.cnblogs.com/cdbb/p/12435456.html
Copyright © 2011-2022 走看看