转载:https://blog.csdn.net/infoworld/article/details/45085415
转载:https://blog.csdn.net/u014792304/article/details/53373430
转载:https://www.cnblogs.com/sunylat/p/6242141.html
转载:https://www.cnblogs.com/del/archive/2010/04/03/1703689.html
转载:https://www.cnblogs.com/iBinary/p/7508144.html(基本概念介绍)
转载:https://arthurchiao.github.io/blog/x86-asm-guide-trans-cn-zh/(翻译国外一篇文章)
转载:http://www.ruanyifeng.com/blog/2018/01/assembly-language-primer.html(入门教程)
使用vs编译x86汇编语言无需安装MASM,因为所有的vs版本都集成了MASM12.0(All versions of Visual Studio include the Microsoft Assembler (MASM) version 12.0.)。
其安装目录(C:Program Files (x86)Microsoft Visual Studio 12.0VCin)都会有一个ml.exe,这是MASM汇编器和链接器。
一、设定“开始执行(不调试)”(Start Without Debugging command)
设定这个的目的是:使得汇编程序执行不需要经过调试阶段
1.进入“工具”->“自定义”
2.选择 “命令”选项卡,并单击“添加命令”
3.在添加“添加命令”对话框里找到“调试”类别,并在右侧命令栏中找到“开始调试(不执行)”,最后单击确定按钮
4.最后关闭“自定义”对话框
二 、开始编写自己的x86汇编程序了
1.建一个空项目,必须先建空项目,改现成的C++项目为assembler项目可能会造成编译不过.
2.选中项目右键 “生成自定义”,选择MASM生成规则.
3.选中源文件右键-->添加-->新建项
4.选中项目右键-》属性-》链接器-》系统-》 子系统选 “控制台(SUBSYSTEM:CONSOLE)”
5.选中项目右键-》属性-》链接器-》高级-》 入口点 填 "main"
6.测试代码编译运行:
TITLE Add and Subtract (AddSub.asm) ; This program adds and subtracts 32-bit integers. ; Last update: 2/1/02 INCLUDELIB kernel32.lib .MODEL flat,stdcall ;.code ExitProcess PROTO, ; exit program dwExitCode:DWORD ; return code .data .code main PROC mov eax,10000h ; EAX = 10000h add eax,40000h ; EAX = 50000h sub eax,20000h ; EAX = 30000h push 0h call ExitProcess main ENDP END main
;程序模板 .386 .model flat,stdcall .stack 4096 ExitProcess PROTO, dwExitCode:DWORD;函数声明 .data ;在这里声明变量 .code main PROC ;在这里编写自己的代码 INVOKE ExitProcess,0 main ENDP END main
7.输出,调试时选择菜单 调试-》窗口-》寄存器 就能看到寄存器值。
三、汇编代码高亮
首先要下载usertype.dat,放到C:Microsoft Visual Studio 12.0Common7IDE 下(我安装的是vs2013)。
然后执行“工具-选项”,照下图的做法,点击“添加”,然后确定。
重启vs.现在已经支持汇编语法高亮了
点击下载:usertype.dat