操作系统实验--30天自制操作系统第1天实验日志

一、实验主要内容

1、内容1:BZ.exe编辑器下载。这里直接从书上的网站去找,网址为https://www.vcraft.jp/soft/bz.html(这里电子教材的网站有误现在进不去了,用纸质版的教材网站是可行的)。直接选择本地下载,然后解压即可使用。点击BZ.exe可以直接使用,界面如下,然后根据教材进行输入(这里可以直接用project中day1中的文件File->open->project->day1->helloos.img)
在这里插入图片描述在这里插入图片描述

内容2:安装tolset。书上的是软盘方法和使用模拟器,这里我们一般使用模拟器方法。找到tolset文件夹,然后在里面进行操作就好,在里面新建一个helloos0文件夹,然后把之前保存的helloos.img文件(或直接把day1中的helloos.img)复制到这个文件夹里,在将tolse文件夹中找到z_new_w子文件夹打开,将里面的!cons_9x.bat和!cons_nt.bat这两个文件复制粘贴到helloos文件夹里。

在这里插入图片描述

然后在helloos里面新建一个txt文件,命名为run.txt打开在里面输入(注意换行)
注意在电子版教材中这里的输入是不对的(多了一个¥)
copy helloos.img …\z_tools\qemu\fdimage0.bin
…\z_tools\make.exe -C …/z_tools/qemu
保存之后更改文件扩展名为run.bat。
按照同样步骤创建install.bat,输入内容为:
…\z_tools\imgtol.com w a: helloos.img
在这里插入图片描述
在这里插入图片描述

内容3:运行程序。在helloos文件夹中双击!cons_9x.bat或者!cons_nt.bat。这里现在的wondows版本一般是!cons_nt.bat。出现运行行窗口,输入run指令就会弹出一个窗口显示hello,world
在这里插入图片描述

这里在helloos.img中可以修改显示,用BZ打开helloos.img然后在右侧的字符中可以进行修改
(在这之前要先在Edit中取消只读属性然后重新打开)
在这里插入图片描述

其中测试了一下字符长度发现暂时还没有明显的限制

在这里插入图片描述
在这里插入图片描述

内容4:写入汇编程序。在光盘文件helloos1中的helloos.nas文件是作者用nask写出来的用到了DB指令还有RESB指令源程序。我们将helloos1文件夹复制到tolset文件夹中,用!cons打开命令行输入asm,就可以生成helloos.img文件,再输入run运行该程序可以发现输出内容不变。在helloos2中包涵DB指令的新用法,可以直接用来写字符串,复制到tolset中可以显示同样结果,想要显示对显示部分进行修改,用文本形式打开文件然后修改即可
在这里插入图片描述
在这里插入图片描述

二、遇到的问题及解决方法

1、描述问题1:电子教材中下载BZ的网址显示404无法找到
解决方法:导致该问题的原因是电子教材比较老了
解决方法为使用新版的纸质教材上的网站https://www.vcraft.jp/soft/bz.html

2、描述问题2:在编写install.bat和run.bat时出错
解决方法:导致该问题的原因是电子教材比较老了,解决方法为使用新版的纸质教材上的路径(删除¥)或使用光盘中的文件

3、描述问题3:在helloos.nas文件中添加其他汇编指令时显示乱码
在这里插入图片描述

导致该问题的原因是在helloos3中显示字符部分的程序是通过把下图中程序的首地址0x7c74作为显示字符串的首地址显示的,所以在下图的程序中使用的任何指令都会被程序当做显示字符处理(如果不是显示字符就可能出现乱码)
在这里插入图片描述
解决方案:在下图中修改程序
在这里插入图片描述

4、描述问题4:在helloos.nas文件中使用DB写入DEL时没有反应写入SO,SI等时显示乱码
解决方法:
导致该问题的原因是这里程序中只调用了显卡BIOS所以还不支持其他操作字符的执行
在这里插入图片描述
在上述程序中加入相应BIOS的控制指令
5、描述问题5:在使用软盘驱动操作系统时需要启动盘
解决方法:
1,新建虚拟机时直接使用Linux下的Ubuntu(前提是原机装过Ubuntu了)
2,选择一个Ubuntu的启动盘
在这里插入图片描述

三、程序设计创新点

1、描述创新点1,使用原始的ASCLL码,通过DB指令进行输出
在这里插入图片描述
在这里插入图片描述

2、描述创新点2,使用DW和DD指令进行输出
DW实现:
在这里插入图片描述
在这里插入图片描述

DD实现:
在这里插入图片描述
在这里插入图片描述

3、描述创新点3,使用软盘(虚拟机上)进行操作系统的安装
使用VM虚拟机,首先新建一个虚拟机这里选择other信号选择unknown(这里选择任意的操作系统都是可以的不过选择这个所需空间最小)
在这里插入图片描述

在设置中选择储存然后添加软盘控制器
在这里插入图片描述

再添加软盘然后注册虚拟软盘文件,选择相应的软盘文件即可,最后启动虚拟机就可以看到效果了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、实验心得体会

本次实验认识并使用了一下汇编指令DB的部分功能(主要注意的就是DW和DD写入时是用的小端法要注意顺序),尝试了使用虚拟机软盘安装操作系统而不是使用模拟机,在helloos.nas文件中进行汇编指令修改时如果使用其他的汇编指令会显示乱码,这个问题虽然知道原因了,但通过与第二天的汇编代码的对比,还是没能发现这些机械码与汇编代码的对应关系(目前只找到了程序起始地址和字符串地址的相关信息,程序的入口地址0x7c50还没有在机械码中找到相应的对应),所以现在还无法通过修改这些机械码来达到实现不同功能程序的目的。

Guess you like

Origin blog.csdn.net/qq_49327751/article/details/120478348