《操作系统30天》-合川秀实-学习日志day1

  • 课程要求学习第1天到第16天的内容,看了之后感觉还不错,想全部看完书的内容,这样对操作系统也有一个比较清晰的认识,坚持更新!

附带书的封面:

准备工作:

  • BZ.exe二进制编辑器(网上直接下载就OK了)

  • 需要作者提供的虚拟光盘(模拟器启动):已经有人在博客上传了
  • notepad++:一个代码编辑器(界面很好看)
  • tolset_h:运行环境,需要把作者的工程复制到这个目录下面才可以运行
  • 《30天自制操作系统》书本
  • 一张软盘(没有也可以)

准备工作完成,开始第1天的学习!

  1. 打开BZ.exe编辑器(二进制编辑器Binary Editor)输入保存

成功打开的界面如下(护眼模式)

输入:在键盘上直接输入EB4E904845......输入两个字母就会自动插入一个空格,输入不同的字母或者数字时会在右侧显示对应的字符,输入的为16进制的ASCII码,右侧显示的是对应字符。从000090开始后面全都是00,一直输到168000这个地址正好是1474560字节。

保存:输入完毕后,从菜单上选择文件”File”->”Save As”取个名字“helloos.img”,保存。打开时先启动BZ.exe ,从菜单中选择”File”->”Open”,选择目标文件,打开,要想能编辑文件要在菜单里选择编辑”Edit”->”Read Only”(只读),两个都去掉再重新打开,就可以进入编辑状态。

注意在地址0001F0和001400附近有些地方不全是00,要根据书本上提示做修改。

(一)准备工作

保存.img文件之后,可以写入软盘再用其来启动电脑,也可以不用软盘。这里用的是模拟器方法。在启动之前要做一些准备工作,打开附带光盘文件,找到名为tolset文件夹,打开之后在里面新建一个文件夹命名为helloos0,把之前保存的映像文件helloos.img复制到这个文件夹里,再到tolset文件夹中找到z_new_w子文件夹打开,把里面的!cons_9x.bat和!cons_nt.bat这两个文件复制粘贴到helloos0文件夹里。

接着还要再helloos0新建一个TXT文件,先命名为run.txt 打开在里面输入

 Copy helloos.img .. \z_tools\qemu\fdimage0.bin

.. \z_tools\make.exe -C .. \z_tools\qemu

保存之后更改文件名为run.bat(后缀改成bat),弹出窗口选是,按照同样步骤创建install.bat,输入内容如下

.. \z_tools\ imgtol.com w a:helloos.img

(二)运行程序

在helloos0文件夹中双击!cons_9x.bat或者!cons_nt.bat,二者总有一个能运行,我的电脑是!cons_nt.bat文件,出现命令行窗口,输入run指令,按回车键,就会显示hello,world

 

(三)修改显示

在hello world的.img文件中修改显示,找到hello的第一个字符h对应的位置,从这个地方开始修改,可以在左边直接按照16进制对应的ASCII码修改也可以在右边点击h改成自己想要的字符,我这里改的是**字符,显示结果如下。

(四)汇编程序

在作者附录光盘的project\01_day\helloos1文件中的helloos.nas文件是作者的用nask写出来的用到DB指令还有RESB指令源程序,在没有优化之前代码过长,不粘贴!在保存为helloos.nas文件之后需要用!cons命令窗口输入指令:>..\z_tools\nask.exe helloos.nas helloos.img 生成映像文件helloos.img。优化之后的内容如下图,保存为helloos.nas(在附录光盘中已经做好在helloos1文件夹)。我们只需要将helloos1文件夹复制到tolset文件夹中,用!cons打开命令行窗口输入asm(作者做了一个可以批量处理文件的asm.bat),就可以生成helloos.img文件,再输入run运行该程序输出内容不变。

(五)加工润色

附带光盘中的helloos2文件夹包含的helloos中的源代码有DB指令的新用法,可以直接用来写字符串。“;”命令是注释。同样复制文件夹到tolset中可以显示同样结果!若要显示不同的信息,可以在显示部分做修改。

附加部分指令用法

DB:“data byte”的缩写,往文件里直接写入1个字节的指令。

RESB:“reserve byte”的略写,空出字节,比如RESB 10就是空出10个字节的意思。

DW:“data word”的缩写,word指的是16位的意思(2个字节),与db指令类似功能。

DD:“data double-word”的缩写,double-word 表32位(4字节)。

$符号:在本程序里前面输出了132个字节,这里的$就是132的意思,用0x1fe-132得出       378,连续输出378个0x00。如果前面输入的字符改变,$可以自动计算出需要输入几个0。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值