zoukankan      html  css  js  c++  java
  • 30天自制操作系统之-第一天-

    从计算机结构到汇编程序入门

        最近受知乎影响,一股脑热买了这本《30天自制操作系统》的书,该书是日本一位大牛写的。看了前20页,还是有些东西可以琢磨的,虽然接触计算机也7年了,惭愧在于大多都只停留在想法,而未动手去好好实践,大忌大忌。写这个系列章节也是希望通过这样的方式来督促自己。工作几个月的感受其实就是:凡是能够追求百分百的一定不能懈怠,不能因为你已经取得第一而放弃继续追求完美。两年前跟导师辩论过,当时我还是很不理解,“都已经达到第一了,为什么还要去花十倍的努力去做的完美”,这里再次感谢导师的教诲。一鞠躬。

        废话多了,言归正传。首先根据书中第一天的任务下载个二进制编辑器,https://www.vcraft.jp/soft/bz.html这里直接放工具在百度云盘里。https://pan.baidu.com/s/1I1FoGeB-BRLFkbX3Pv8fnA

        书中介绍该工具用于对二进制进行编辑,可以生成.img文件。之前搞KVM、OpenStack就经常跟.img文件打交道,这次终于可以试一试自己写一个.img了(nice脸)。

       以下代码是该书作者自己写的汇编编译器做的一个.img文件的生成脚本。该代码主要是节省手工编写17万行的二进制(书中提到),这也是编译器干的事。至于汇编代码中每个语句的含义,需要后续章节在体会体会才行。

    ; hello-os
    ; TBA=4
    
        DB  0xeb, 0x4e, 0x90
        DB  "HELLOIPL"
        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  "HELLO-OS   "
        DB  "FAT12   "
        RESB  18
        
    ; 程序主体
    
        DB    0xb8, 0x00, 0x00, 0x8e, 0xd0, 0xbc, 0x00, 0x7c
        DB    0x8e, 0xd8, 0x8e, 0xc0, 0xbe, 0x74, 0x7c, 0x8a
        DB    0x04, 0x83, 0xc6, 0x01, 0x3c, 0x00, 0x74, 0x09
        DB    0xb4, 0x0e, 0xbb, 0x0f, 0x00, 0xcd, 0x10, 0xeb
        DB    0xee, 0xf4, 0xeb, 0xfd
        
    ; 信息显示部分
    
        DB  0x0a, 0x0a
        DB  "hello, world"
        DB  0x0a
        DB  0
        RESB  0x1fe-$
        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

    根据书中的教程,第一个操作系统的hello world可以输出运行了。(nice)

  • 相关阅读:
    zabbix 对/etc/ssh/sshd_config文件的监控 但status为unknowen
    Kotlin从零到精通Android开发
    谷歌官方 构建您的第一个应用 Kotlin版
    android studio 运行按钮为灰色的解决办法之一
    webapi发布到windows 2012的iis8里 出错
    Asp.net MVC WebApi项目的自动接口文档及测试功能打开方法
    Asp.net Web Api开发(第四篇)Help Page配置和扩展
    关于SNMP的MIB文件的语法简述
    Visual Stdio 2017增加SVN支持
    ffmpeg 多个音频合并 截取 拆分
  • 原文地址:https://www.cnblogs.com/grglym/p/11564446.html
Copyright © 2011-2022 走看看