转载: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.0\VC\bin)都会有一个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.0\Common7\IDE 下(我安装的是vs2013)。
然后执行“工具-选项”,照下图的做法,点击“添加”,然后确定。
重启vs.现在已经支持汇编语法高亮了
点击下载:usertype.dat
来源:oschina
链接:https://my.oschina.net/u/4263721/blog/3703942