首先下载Binary Editor:
https://www.vcraft.jp/soft/bz.html
如图所示,点击下载:
下载后解压,在同一个盘下创建文件夹取名为OSASK,启动Bz.exe程序并输入:
需要复制很多的0,一直到168000这个地址,得到的文件命名为helloos.img
我要下载一个QEMU虚拟机,启动这个东西比我想象的容易,按照作者要求使用“run”命令就得到了效果:
当然我犯了一个错误,在地址00000060那一行有一个B8,应该改成BB
下面我写一个汇编程序,需要用到汇编语言编译器nask:
(作者在光盘的文件里事先准备好了):
DB 0xeb, 0x4e, 0x90, 0x48, 0x45, 0x4c, 0x4c, 0x4f
DB 0x49, 0x50, 0x4c, 0x00, 0x02, 0x01, 0x01, 0x00
DB 0x02, 0xe0, 0x00, 0x40, 0x0b, 0xf0, 0x09, 0x00
DB 0x12, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x40, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x29, 0xff
DB 0xff, 0xff, 0xff, 0x48, 0x45, 0x4c, 0x4c, 0x4f
DB 0x2d, 0x4f, 0x53, 0x20, 0x20, 0x20, 0x46, 0x41
DB 0x54, 0x31, 0x32, 0x20, 0x20, 0x20, 0x00, 0x00
RESB 16
DB 0xb8, 0x00, 0x00, 0x8e, 0xd0, 0xbc, 0x00, 0x7c
DB 0x8e, 0xd8, 0x8e, 0xc0, 0xbe, 0x74, 0x7c, 0x8a
DB 0x04, 0x83, 0xc6, 0x01, 0x3c, 0x00, 0x74, 0x09
DB 0xb4, 0x0e, 0xbb, 0x0f, 0x00, 0xcd, 0x10, 0xeb
DB 0xee, 0xf4, 0xeb, 0xfd, 0x0a, 0x0a, 0x68, 0x65
DB 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x77, 0x6f, 0x72
DB 0x6c, 0x64, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 368
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0xaa
DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 4600
DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 1469432
然后打开!cons_nt.bat,输入:
..\z_tools\nask.exe helloos.nas helloos.img
就能生成出helloos.img文件,但每次要这么输入显然太麻烦了,就做个批处理文件叫asm.bat
在上述的汇编程序中,DB指令用于往文件里写入一个字节的指令,大写小写都可以
RESB指令意思是从现在的地址开始预留10个字节,而且nask不仅仅是把指定的地址空出来,它还会在空出来的地址上自动填入0x00。
好了,接下来进入到本书的Day 2部分