《现代X86汇编语言》这本书截止 2022 年 3月,出版了两次,先讲第一版的调试环境搭建。
第一版的 代码可以在 github 找到,书中的 apress.com 已经找不到代码下载了,只能在 github 找。下载好 github 的代码项目之后,如下图:
点进去源码文件夹,即可看到 sln 文件,这些都是 Visual Studio ,可以直接打开。这里作者的环境是 vs2013,但是我测试,大部分的代码项目都能用 vs2019 运行,如果某些章节代码不能跑在 vs2019,那就需要你安装一下 vs2013。运行情况如下:
这本书的第二版有些内容省略了,x87 浮点单元,MMX,SIMD扩展指令,这些都省略了,并不是说这些技术过时了,弃用了,而是这些内容在第一版有,需要可以去看第一版。这里补充一下 x87 FPU 确实过时了,现在的浮点技术用的是 SSE2 指令,推荐阅读《x87浮点运算器与SSE2的差别》。
此书 第二版是在 2021 年 7月出版的,比较新。书里说 代码 可以在 apress.com 下载,但我依然是抓瞎,找不到下载链接,所以还是 推荐一下 github 的下载地址。下载之后如下图:
文件夹里面有个 sln 文件,所以还是 Visual Studio 的项目,第二版的代码推荐使用 vs2017 运行。有时候会报以下错误,
找不到windows SDK版本10.0.16299.0等问题
这里可以点击 菜单栏的 Tool -> Get Tools and Features,如下图:
然后直接找到 相应的 windows sdk 版本进行下载即可,如下图:
这个方法可以调出 windows 的组件安装程序,如果自己的项目缺少一些其他的组件,例如 .Net ,也可以这样安装。
下面讲一个断点调试的技巧,Register 标签不只是能展示通用寄存器,还能展示 X87 FPU 的寄存器,如下:
由于笔者的水平有限, 加之编写的同时还要参与开发工作,文中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果读者有任何宝贵意见,可以加我微信 Loken1,QQ:2338195090。