zoukankan      html  css  js  c++  java
  • 《30天自制操作系统》02_day_学习笔记

    helloos3:
      helloos.nas的解释在P29中
      接下来课本讲了一些汇编语言的知识,便于理解这个汇编文件
    helloos4:
      讲解在P41
      helloos.nas后半部分去掉就成了ipl.asm
      ipl.asm是用来制作启动区的,启动区只需要最初的512字节
      输入顺序 asm--makeimg--run
      asm   ipl.asm->ipl.bin   ipl.lst
      makeimg   ipl.bin->helloos.img
      run 加载运行helloos.img镜像
    helloos5:
      Makefile的规则 具体讲解在P42
      Makefile 中有注释

    ; hello-os
    ; TAB=4
    
            ORG        0x7c00            ; 程序的装载地址
    
    ; 以下这段是标准的FAT12格式软盘专用的代码
    
            JMP        entry
            DB        0x90
            DB        "HELLOIPL"        ; 启动区的名称可以是任意的字符串(8字节)
            DW        512            ; 每个扇区(sector)的大小(必须为512字节)
            DB        1            ; 簇(cluster)的大小(必须为1个扇区)
            DW        1            ; FAT的起始位置(一般从第一个扇区开始)
            DB        2            ; FAT的个数(必须为2)
            DW        224            ; 根目录的大小,一般设成224项
            DW        2880            ; 该磁盘的大小,2880扇区
            DB        0xf0            ; 磁盘的种类,必须是0xf0
            DW        9            ; FAT的长度,9个扇区
            DW        18            ; 1个磁道track有18个扇区
            DW        2            ; 磁头数为2
            DD        0            ; 不适用分区,0
            DD        2880            ; 重写一次磁盘的大小
            DB        0,0,0x29        ; 定值
            DD        0xffffffff        ; 表圈的号码,可能
            DB        "HELLO-OS   "            ; 磁盘的名称,112字节
            DB        "FAT12   "        ; 磁盘格式的名称 。8字节
            RESB    18                ; 空出18个字节
    
    ; 程序的主体
    
    entry:
            MOV        AX,0            ; 初始化寄存器
            MOV        SS,AX
            MOV        SP,0x7c00
            MOV        DS,AX
            MOV        ES,AX
    
            MOV        SI,msg
    putloop:
            MOV        AL,[SI]
            ADD        SI,1            ; SI+1
            CMP        AL,0
            JE        fin
            MOV        AH,0x0e            ; 显示一个文字
            MOV        BX,15            ; 指定字符的颜色
            INT        0x10            ; 调用显卡BIOS
            JMP        putloop
    fin:
            HLT                    ; 让CPU停止
            JMP        fin            ; 无限循环
    
    msg:
            DB        0x0a, 0x0a        ; 2换行
            DB        "hello, world"
            DB        0x0a            ; 换行
            DB        0
    
            RESB            0x7dfe-$        ; 填写0x00,直到0x001fe
    
            DB        0x55, 0xaa
    
    ; 以下是启动区以外的部分的输出
    
            DB        0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
            RESB    4600
            DB        0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
            RESB    1469432
    View Code
    //Makefile
    # 执行不带参数的make时,默认的参数为make  img
    
    default :
        ../z_tools/make.exe img
    
    #  文件生成规则
    
    ipl.bin : ipl.nas Makefile   #要想制作ipl.bin先检查ipl.nas Makefile两个文件
        ../z_tools/nask.exe ipl.nas ipl.bin ipl.lst
    
    helloos.img : ipl.bin Makefile
        ../z_tools/edimg.exe   imgin:../z_tools/fdimg0at.tek 
            wbinimg src:ipl.bin len:512 from:0 to:0   imgout:helloos.img
    
    # 命令
    
    asm :
        ../z_tools/make.exe -r ipl.bin
    
    img :
        ../z_tools/make.exe -r helloos.img
    
    run :
        ../z_tools/make.exe img
        copy helloos.img ..z_toolsqemufdimage0.bin
        ../z_tools/make.exe -C ../z_tools/qemu
    
    install :
        ../z_tools/make.exe img
        ../z_tools/imgtol.com w a: helloos.img
    
    clean :   #删除掉最终的成果(helloos.img以外的全部文件)
        -del ipl.bin
        -del ipl.lst
    
    src_only :   #把源程序以外的全部文件删除
        ../z_tools/make.exe clean
        -del helloos.img
    Makefile
  • 相关阅读:
    Windows下NodeJS环境搭建
    大前端是什么?
    TeamCity+Rancher+Docker实现.Net Core项目DevOps(目前成本最小的DevOps实践)
    2019春运抢票终极攻略,让你躺着也能抢到票回家!
    ASP.NET CORE 2.0 发布到IIS,IIS如何设置环境变量来区分生产环境和测试环境
    使用第三方容器服务,自动化部署.Net Core
    记React+.NetCore API实现动态列导出
    6.前端基于react,后端基于.net core2.0的开发之路(6) 服务端渲染(SSR)
    5.前端基于react,后端基于.net core2.0的开发之路(5) 配置node层,session设置、获取,请求拦截
    4.前端基于react,后端基于.net core2.0的开发之路(4) 前端打包,编译,路由,模型,服务
  • 原文地址:https://www.cnblogs.com/pengfeiz/p/5780678.html
Copyright © 2011-2022 走看看