从计算机结构到汇编程序
前言
本文仅用作记录,谨慎参考!
实验主要内容
- 内容1:下载文件Bz162文件,双击启动Bz.exe程序;成功启动该程序之后的页面如下
- 内容2:软盘映像文件的制作
a)方法一:通过在Bz.exe程序中输入机器码,然后保存即可以生成相应的映像文件helloos.img
可以看到,从第0x76个字节到第0x81个字节存储的是”hello, world
”的十六进制编码;”HELLO-OS
”给出磁盘名称(11字节);”FAT12
”给出磁盘格式名称(8字节);"HELLOIPL
"表示启动区的名称可以是任意的字符串(8字节)
值得注意的是第0x200个字节开始的三个字节不为”00”而是”F0”、”FF”、”FF”
在helloos文件夹下面生成两个文件:install.bat和run.bat
将tolset\z_new_o文件夹下的两个文件”!cons_9x.bat”、”!cons_nt.bat”复制到helloos文件夹下面;双击”!cons_nt.bat”打开页面执行”run”指令得到如下结果
b)方法二:使用汇编程序,生成和方法一完全一样的helloos.img
生成helloos.img映像文件:在helloos文件夹下面生成一个asm.bat文件、一个install.bat文件和一个run.bat文件
将tolset\z_new_o文件夹下的两个文件”!cons_9x.bat”、”!cons_nt.bat”复制到helloos文件夹下面;双击”!cons_nt.bat”打开如下页面,输入”asm”生成img文件,再执行”run”命令,则可以得到与方法一相同的结果
遇到的问题及解决方法
- 问题:不明白”!cons_9x.bat”、”!cons_nt.bat”两个文件的作用
解决方法:通过上网查资料,以及观察两个文件内容大致了解到!cons_nt.bat是一种批处理文件,可以直接执行指令。本文件在这里的作用相当于cmd,用记事本查看其内容也是cmd;!cons_9x.bat与后者作用相同,只是用于windows95平台,所以相应的程序为command。 - 问题:不明白run.bat和install.bat文件的作用
解决方法:通过上网查资料以及使用记事本查看两个文件中的内容,了解到run.bat文件是将helloos.img复制为上一级目录下\z_tools\qemu\fdimage0.bin并且启动qemu虚拟机;install.bat是将helloos.img写到软盘上,虚拟机qemu可以直接执行。
程序设计创新点
- 利用汇编程序改变显示的内容,将显示的内容改为"Hi, Lang Lihui! ",并在test0文件夹下面生成run.bat、install.bat、asm.bat文件,并且将tolset\z_new_o文件夹下的两个文件”!cons_9x.bat”、”!cons_nt.bat”复制到test0文件夹下面;生成一个test0.nas文件,将输出的内容改为如下所示
双击”!cons_nt.bat”输入“asm”生成test0.img映像文件后输入”run”运行得到显示结果如下所示
- 将输出的内容显示在VMware虚拟机上
打开VMware,创建新的虚拟机,配置硬件环境,添加软盘驱动器之后添加软盘映像文件,得到如下界面