操作系统实验日志学号201608010520姓名甘昆禄专业年级班级智能1601实验日期2018.09.19实验项目第1天:从计算机结构到汇编程序入门一、实验主要内容1、用二进制编辑器编辑机器语言:到作者给定的网站下载一个二进制编辑器,他能直接对二进制数进行编辑。按照作者的说法,如果对机器码非常熟悉的话,理论上可以用二进制编辑器完成(此处理器上的)任何软件的制作,小至一个计算器,大至一个编译器,操作系统。但是要用这个写出像Windows这样的操作系统是不可能的。编辑器如下:好,按照作者所给写出相应的机器语言后,生成了img镜像文件。接下来要用作者给的PC模拟器qemu来仿真运行,刚刚写的“操作系统”。首先要创建一个bat文件,名为run.执行bat文件就是要进入cmd命令行,来执行相应程序。很明显!cons_nt.bat就是要直接进入目前所处文件夹,然后run文件就是我们要进行的操作,这里我们是要将helloos.img镜像文件仿真运行。代码如下:copyhelloos.img..\z_tools\qemu\fdimage0.bin..\z_tools\make.exe-C..\z_tools\qemu//将当前目录下的helloos.img镜像文件拷贝复制并重命名为fdimage0.bin保存到仿真程序所在的目录即qemu目录,用z_tools文件夹下的qemu仿真运行。运行结果如下:2、体验并润色汇编语言:果然遇到事还是用汇编语言要行用记事本输入:DB0xeb,0x00,0xeb,0x00,xeb,0x00,0xeb,0x00DB0xeb,0x00,0xeb,0x00,xeb,0x00,0xeb,0x00....保存为helloos.nas,然后用汇编器汇编即可生成和二进制编辑器编辑的一样的效果。汇编器仅仅是一个文本转换工具而已,将一条汇编指令转换为对于的机器指令。DB就是DateByte的简写DW:dataword.DD:datadouble-word.RESB16;Reservebyte预留16个字节0.每次进行汇编编译很麻烦,作者写了一个批处理文件,每次点击它即可,这是自动化的第一步Asm.bat内容:..\z_tools\nask.exehelloos.nashelloos.img;运行汇编器nask.exe将helloos.nas汇编为helloos.img。进过润色后的汇编代码好理解多了,我们也可以直接在这里修改我们要显示的内容了。然后好像第一天就结束了,全程跟着作者做,理解各个步骤的意义和好处我觉得还行。下面是一些知识点:启动存储器(软盘,磁盘,U盘,光驱均可)第一个扇区称为启动区,他的最后两个字节,510,511字节固定为:0x55,0xAA。一个扇区固定为512字节。---计算机首先从存储器读第一个扇区,如果他的最后两个字节是55aa,则此存储器为启动存储器(操作系统在其中),开始运行第一个扇区的启动程序;如果不是,则继续查找下一个存储器(软盘,光驱,U盘等)。IPL:InitialProgramLoader,启动程序加载器,将OS加载到内存中。55aa:启动存储器二、遇到的问题及解决方法填写说明:分条目列出本次的实验过程中遇到的问题和解决方法(可注明是哪位同学帮忙解决问题),描述问题时应配上相关的截图和标记,描述解决方法时应先分析出现该问题的原因再讲解决方法,尽量详细。1、将镜像文件img保存后再用BZ二进制编辑器打开,怎么也编辑不了解决方法:导致该问题的原因目前未知,解决方法为:我在网上另外下载了一个二进制编辑器,可以成功修改:2、本来要显示helloworld的页面出现了异常,如图解决方法:导致该问题的原因是经查发现是镜像文件img写错(诶呀都怪pdf太模糊太多错,课本真是还是要的),解决方法为修改img文件…………三、程序设计创新点填写说明:分条目列出本次实验过程中对教材的哪些部分进行了创新或者修改,写清楚为什么要这样做,这么做会得到怎样的结果等,附上关键代码和截图。1、其实我们可以直接修改二进制的img文件,但那有局限也不方便,所以修改润色后的汇编代码简单多了,通过换行和输出得到一个金字塔图标2、用虚拟机实现模拟操作系统的功能安装了VirtualBox之后,我们新建一个虚拟机,新建一个虚拟机,分配好虚拟硬盘和内存,然后再打开虚拟机的“设置”“存储”,点击“增加控制器”,增加一个软盘控制器就同样可以观察到我们写的代码的效果四、实验心得体会感觉这次实验就是完全按着作者走,只要理解了具体步骤的意义就好,主要是懂得了怎样利用处理镜像文件,可以用虚拟机的同时也可以用模拟器,似乎很方便快捷。这次课,主要还是对二进制代码还有点好奇,虽然汇编代码有讲到一点,但只是部分,希望以后能够明白。