汇编环境搭建 -- Visual Studio
2019-01-23 本文已影响457人
_凌浩雨
1. 创建空项目
图1.png2. 生成MASM规则
项目右键 -> 生成自定义 -> 勾选masm选项
图2.png
图3.png
3. 添加源文件
选择源文件右键->添加->新建项,新建时将文件的后缀名修改为.asm
(注意必须此时改)
4. 设置属性
-
选中项目右键 ->属性-> 链接器->系统-> 子系统 -> "控制台(SUBSYSTEM:CONSOLE)" -> 应用
图5.png -
选中项目右键 ->属性 -> 链接器-> 高级 -> 入口点 -> 输入"main@0" -> 应用
图6.png
5. 输入代码
.486 ; 定义32位程序可以接受32位的寄存器和地址
.model flat, stdcall ; 选择程序的内存模式为平坦模式,stdcall调用习惯
.stack 4096 ; 设置运行的堆栈大小为4096字节
; 分号为单行注释, COMMENT&...&为多行注释
COMMENT &
定义了一个ExitProcess函数, 它是标准的Windows服务。PROTO是原型关键字,
并定义了一个DWORD类型的输入参数, 函数返回0认为我们执行成功
&
ExitProcess PROTO, dwExitCode: DWORD
.data
sum DWORD 0 ; 定义变量
.code
main PROC ; 定义主函数开始位置
mov eax, 5 ; 将eax寄存器的值设置为5
add eax, 6 ; 为eax寄存器加5
mov sum, eax ; 将eax的设置给sum变量
INVOKE ExitProcess, 0 ; 退出程序
main ENDP ; 函数结束位置, ENDP 之前的内容,要与PROC
END main ; 设置了函数的入口与出口
6. 运行
注:此时运行无任何效果,因为程序中没有打印
7. 调试查看值
效果图.gif8. 特别说明
之前搭建了一篇汇编环境搭建 -- MASM32,此文将开发工具由MASM32更改为Visual Studio的原因为:
- Assembly Language for x86 Processors (7th Edition) 一书的作者在文中使用此工具
- 汇编语言的不可移植性
- MASM32 开发复杂,工具的不完善性,此工具可查看堆栈信息,方便调试
- 可以看出在不同工具下的汇编代码框架是不同的,因此程序要因开发工具特定
9. Visual Studio 快捷键
- Ctrl+F5:编译-链接-运行
- F5:调试
- 修改字体大小:工具 -> 选项 -> 环境 -> 字体和颜色
- 添加行号:工具 -> 选项 -> 文本编辑器 -> 纯文本 -> 常规 -> 行号