30天自制操作系统 第2天日志

一、实验主要内容

1、 内容1:文本编译器的下载

下载的文本编译器为Notepad++
这里附上下载网址:https://notepad-plus-plus.org/repository/7.x/7.6.4/npp.7.6.4.Installer.x64.exe
在这里插入图片描述
对其进行安装即可

2、 内容2:汇编指令及寄存器的介绍

ORG指令:把程序装载到内存中的指定地址
JMP指令:跳转指令,相当于C语言中的goto语句
MOV指令:赋值
ADD指令:加法指令,将两个操作数相加
INT指令:中断指令,用来调用该地址对应的中断函数
HLT指令:是让CPU停止动作的指令,不是彻底的停止,而是让CPU进入待机状态
16位寄存器
AX:accumulator,累加寄存器
CX:counter,计数寄存器
DX:data,数据寄存器
BX:base,基址寄存器
SP:stack pointer,栈指针寄存器
BP:base pointer,基址指针寄存器
SI:source index,源变址寄存器
DI:destination,目的变址寄存器
在这里插入图片描述
16位段寄存器
在这里插入图片描述

3、 内容3:制作启动区

把helloos.nas的后半部截掉,文件名也改为ipl.nas
改造asm.bat,将输出文件名改成ipl.bin和ipl.lst
making.bat:先读入空白磁盘映像文件,在开头写入ipl.bin,输出helloos.img文件

双击!cons,在命令行窗口输入asm->makimg->run
在这里插入图片描述
在这里插入图片描述

4、 内容4:Makefile入门

#表示注释
\是续行符号,表示这一行太长写不下,跳转到下一行继续写
格式规则:即指定多个目标并能够根据每个目标名构造对应的依赖名的规则。
格式规则的语法格式:
targets… :
[tab]commands
target:生成的目标文件,必写;
prerequisites:前置条件,,生成目标文件时,会先检查源文件是否准备好了,若准备好了Make工具就执行下一行(即命令行);
[tab]:tab键,每个命令行必须以tab键为首,"前置条件"和"命令"都是可选的,但是两者之中必须至少存在一个。
命令窗口输入make -r ipl.bin
make -r helloos.img即可生成相应文件
在这里插入图片描述
在这里插入图片描述
删除上面两个文件,再次输入make -r hellos.img即可生成上述的两个文件,它会去Makefile里寻找ipl.bin,然后生成它。
在这里插入图片描述
在这里插入图片描述
不删除上面文件,再次输入make -r helloos.img会发现输出(’helloos.img’ is up to date)
在这里插入图片描述
将ipl.nas输出改为How are you?,再次输入make -r helloos.img,重新生成输出文件
在这里插入图片描述
在这里插入图片描述
说明make.exe不仅仅判断输入文件的存在,还判断文件的更新日期,并据此决定是否要重新生成输出文件

5、 内容5:增添的命令

make clean:删除掉最终成果(这里指helloos.img)以外的所有中间生成文件
make src-only:把源程序以外的文件全部删除干净
make(不带参数):默认执行make img命令

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

1、描述问题1

系统找不到指定路径
在这里插入图片描述
解决方法:需要将helloos文件复制到tolset文件夹下才行,因为要调用其中的nask.exe,生成ipl.bin和ipl.lst文件。其他的makeimg以及run都是一样的,要调用tolset中的文件

2、描述问题2

makeing不是内部或外部指令,也不是可运行的程序或批处理文件
在这里插入图片描述
解决方法:导致该问题的原因是makeimg的指令输错了,第一次输入making,第二次输入making,后来才发现是makeimg。

三、程序设计创新点

1、 描述创新点1

将命令设为.clearlove目标,这样可以避免与同名文件冲突。
在这里插入图片描述
因为clearlove目标并非是由其它文件生成的实际文件,make
会跳过隐含规则搜索,这样无需担心实际文件存在与否。
假如我这个文件夹里面有个文件命名为clean,我在执行make clean时,就会出现:
在这里插入图片描述
而将其设为clearlove目标时,就不会出现这种状况了。

2、 描述创新点2

在MakeFile文件中设置变量,合并指令以精简代码。
在这里插入图片描述
30天自制操作系统1~15天日志:https://download.csdn.net/download/weixin_43979304/15320819?spm=1001.2014.3001.5503

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SIR怀特

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值