X86->1. 环境搭建(书中第五章)

前面的内容相对基础,懒得写,也可参考我主页另一篇学王爽老师的博客

环境搭建前的准备

支持vhd磁盘文件和创建没有特定系统的虚拟机(推荐书中的的virtualbox),一个汇编语言的编译器以及作者在前言的site里有说的所有章节文件等(解压如下图)

image-20240311204327272

第一次写入程序可作为环境搭建成功与否的检验。

可参照书中p63的检测点小题一步步做

搭建环境&检查

  1. 搭建虚拟机(不要中文路径)

virtualbox新建,名称和文件夹无所谓,虚拟光盘不填入(即空),类型和版本选择

Other和Other/unknown(不用64位)

内存和处理器大小任意,象征给个512mb4核也可。

创建虚拟硬盘文件选择课件内的LEECHUNG.vhd,具体方法则是选择使用已有的虚拟硬盘文件并注册上述的vhd文件。

到这一步基本完成虚拟机搭建,但此时不能打开它,毕竟里面连最基本的系统引导扇区文件都没有。

  1. 写入可运行文件

接下来使用编辑器(vscode或者作者给的nasmide)新建.asm文件,键入以下代码

mov ax,0xb800	;将显存所在的地址赋给ax
mov ds,ax ;将ax的值赋给ds,方便接下来向显存内输出
mov byte [0x00],'a' ;依次输出字符
mov byte [0x02],'s'
mov byte [0x04],'m'
jmp $ ;这段和下一行暂时不明白在干嘛
times 510-($-$$) db 0
db 0x55,0xaa ;vhd写入时必要的文件结尾,保证该段程序被正确加载

相对原文有所改动,因为原本的汇编编译后无法运行,原因参照https://blog.csdn.net/zzzzzec/article/details/121311995和下图的评论

![屏幕截图 2024-03-11 201638](../pics/img 2024-03-11 201638.png)

之后保存此.asm文件并编译出.bin文件

使用作者提供的fixvhdw程序,对照你的路径填入,清空将要添加的文件之后添加上述的bin文件(路径可能因为中文卡住出bug,这个时候建议重新搭建一次),起始扇区号选择0

image-20240311211122622

最后成功写入后,之前搭好的虚拟机就可以简单运行了

![屏幕截图 2024-03-11 201533](../pics/img 2024-03-11 201533.png)

XD~