VS2013的x86汇编语言开发环境配置

转载: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

原文地址:https://www.cnblogs.com/chechen/p/10154968.html