zoukankan      html  css  js  c++  java
  • 《Orange’s 一个操作系统的实现》2.最小的操作系统

     

    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                ; 结束标志

    编译执行过程如下

    a.编译boot.asm

    nasm boot.asm –o boot.bin

    b.创建虚拟软盘

    >输入命令bximage(bochs自带),创建名为1.44M的a.img的虚拟软盘

    c.将引导扇区boot.bin写入a.img

    dd if=boot.bn of=a.img bs=512 count=1 conv=notrunc

    d.修改bochsrc文件(bochs2.4.5需要修改)

    # filename of ROM images
    romimage: file=/usr/share/bochs/BIOS-bochs-latest
    vgaromimage: /usr/share/vgabios/vgabios.bin

    # enable key mapping, using US layout as default.
    keyboard_mapping: enabled=1, map=/usr/share/bochs/keymaps/x11-pc-us.map

    修改为:

    # filename of ROM images
    romimage: file=$BXSHARE/BIOS-bochs-latest
    vgaromimage: file= $BXSHARE/VGABIOS-lgpl-latest

    # enable key mapping, using US layout as default.
    keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-us.map

       e.将a.img和bochsrc放在相同目录,进入此目录,输入bochs即可。或者用bochs –f mybochsrc 指定配置文件

       f.因为安装bochs时选择的编译安装时debug模式,所以运行后出现bochs窗口黑乎乎的一片,

         这是你需要到终端窗口输入c,按回车即可执行

    或者用qemu运行:

    qemu -fda a.img -boot a -m 64 -localtime

  • 相关阅读:
    HDU 1025 Constructing Roads In JGShining's Kingdom (DP+二分)
    HDU 1158 Employment Planning
    HDU 2059 龟兔赛跑
    Csharp 简单操作Word模板文件
    Csharp windowform datagridview Clipboard TO EXCEL OR FROM EXCEL DATA 保存datagridview所有數據
    Csharp 讀寫文件內容搜索自動彈出 AutoCompleteMode
    Csharp windowform controls clear
    CSS DIV大图片右上角叠加小图片
    Csharp DataGridView自定义添加DateTimePicker控件日期列
    Csharp 打印Word文件默認打印機或選擇打印機設置代碼
  • 原文地址:https://www.cnblogs.com/cute/p/1992529.html
Copyright © 2011-2022 走看看