欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

VS搭建32位和64位汇编开发环境

终极管理员 知识笔记 47阅读

VS搭建32位和64位汇编开发环境 1 VS2017软件安装2 创建汇编工程3 配置X86汇编环境32位4 配置X64汇编环境64位5 调试技巧
本文属于《 X86架构指令基础系列教程》之一欢迎查看其它文章。

1 VS2017软件安装

安装过程请参考《Visual Studio Community 2017安装步骤只装C》。

2 创建汇编工程

点击“文件”->“新建”->“项目”弹出如下图

选择“Visual C”->“空项目”输入项目名称和路径确定项目就建立好了。
然后选中项目右键->“生成依赖项”->“生成自定义”如下图所示

弹出如下图所示

勾选“masm”确定。然后在项目的“源文件”文件夹下右键->“添加”->“新建项”如下图所示

弹出的“添加新项”窗口中选择“C文件”然后修改文件后缀名为“.asm”最后点击“添加”。

到此我们建立了工程并在工程中添加了一个汇编文件。
无论是编写32位还是64位汇编以上的步骤都是一样的。

3 配置X86汇编环境32位

创建工程后“解决方案平台”默认选项为“x86”如果不是需要手动修改。
我们在test.asm中输入两数求和的汇编例子代码如下

.486;CPU 型号.MODEL FLAT, STDCALLExitProcess PROTO,dwExitCode:DWORD.DATASUM DB ?.CODEMAIN PROC;开辟主线程MOV AL, 11H;立即数 11H 放入寄存器 ALADD AL, 22H;立即数 11H 与寄存器 AL 内的数据相加在 AL 中寄存MOV SUM, AL;把 AL 寄存器中的数据 给 SUMINVOKE ExitProcess,0;返回DOCMAIN ENDPEND MAIN

MOV AL, 11H位置按F9打下断点然后F5启动调试如下所示

表明32位程序已经运行成功。

4 配置X64汇编环境64位

将“解决方案平台”默认选项为“x64”此时如果我们直接运行上述的汇编例子编译会报错可能是X86和X64汇编语法支持上有区别因此我们换个例子。
在test.asm中输入代码如下

;64位汇编程序模板 (Template);声明一个ExitProcess函数ExitProcess PROTO.data;在这里声明变量.code main PROC;这里写自己的代码mov rcx,0call ExitProcessmain ENDPEND

选中项目右键->“属性”弹出如下所示

依次选择“配置属性”->“链接器”->“高级”->“入口点”修改为自己代码中的main过程最后“应用”->“确定”。
如果不修改入口点编译时会报错“无法解析的外部符号 mainCRTStartup”。

mov rcx,0位置按F9打下断点然后F5启动调试如下所示

表明64位程序已经运行成功。

5 调试技巧


在菜单中“调试”->“窗口”->“内存”/“反汇编”/“寄存器”菜单项可以在调试时打开对应的窗口。

标签:
声明:无特别说明,转载请标明本文来源!