前言:
这本书在寒假看完王爽的《汇编语言》后就想好好看看,当时买了电子版一直没看进去,偶然在图书馆发现有纸质书,所以就拿来好好读一读。这本书一直被很多人推荐,作者曾写过《穿越计算机迷雾》,挺赞的。
但是,在阅读过程中,尤其在前几章的配置时,发现作者自己编写的软件都是32位,毕竟是很多年前的了,现在在Win10的64位环境下很多不兼容,这里给出了替代工具,和操作方法及汇编代码的错误之处。
经过这些步骤,我们能在第一部分最后的VirtualBox实现中完美运行(这样对我来讲就远离了DOSBOX,那真复古。。把写好的二进制文件放入虚拟机中直接运行就好)
下面以我遇到的问题的顺序叙述,作者给出的工具下载地址已经无法使用,但直接百度就可以搜到。
1.Nasmide程序无法使用**
我在windows 64位环境下无法操作,这个在WIndows下推荐使用 notepad++
,本身汇编语言不需要IDE,用自带的记事本太蛋疼了。当你文件格式为 asm 时,则会出现语法高亮。
然后我们直接使用nasm
来编译程序就好,注意,我们来编译成bin
格式的二进制文件,不需要EXE文件。用指令nasm -f bin filename -o objname
,其中-f
是指明二进制文件。
当运行NASM终端时,要在它刚开始默认的文件夹中运行,如果是在别的文件夹会出现无nasm指令的状况,这里应该要修改windows环境变量吧。(把你写好的汇编代码存入默认的文件夹中就好)
2.HexView程序无法使用
这里工具HexView虽然没想上边那个打不开,但是使用时依然无法看到机器代码,这个我用windows平台下的WinHex工具来代替,这个有汉化版的,功能强大,而且下载45天免费使用,看个机器代码用这个就可以。
3.用VirtualBox建立虚拟机
这里和传统的虚拟机不太一样,这里只有一个虚拟硬盘,操作系统啥的统统没有,虚拟硬盘如书上所说使用VHD,而且该文件已经在工具包中给出你了,你直接新建
,然后版本
,类型
都是选择`other就好。
重点:对于选择的磁盘文件,我们直接选择书上的就好,这里,需要注意,当你选择完成之后,其文件地址就被保存,下次按照这个地址来搜索VHD这个文件,所以,我们 不要再改变这个VHD文件的位置了!
补充:以前都用VMware,没用过VirtualBox,可能有时会出现这个虚拟机莫名的为空,这时,重新启动一下就好。
4.使用FixVhdWr工具写入文件
首先说明,这个工具可以使用。
我们在选择虚拟文件时,直接选择上面那个VHD文件就行!
书中图4-8中,上面可能存在误导,当时我用“向磁盘文件中写入二进制文件时,原以为是在新建虚拟机的文件夹中找磁盘文件,结果没找到,还傻乎乎的把该文件直接移动到虚拟机文件中,结果查看启动错误之后,查看错误信息,才发现其搜索路径是当时的文件。
5.代码错误
检测点4.2中的代码错误,会提示没有指明字符大小
,其实有过汇编基础的也会发现,它未指明是字还是字节,这里直接给出作者写的勘误表:
http://blog.163.com/leechung@126/
6.总结
如果你都操作正确,那么你最后运行你新建的连操作系统都没有的虚拟机时,其在屏幕上显示asm
,完成了。