场景:

1. 虽然使用MASM32也可以编译运行汇编程序,但是既然装了VS2010,它也能支持编译运行汇编吧.不然微软的开发人员难道还不用vs写汇编程序了?

http://www.masm32.com/

2. x64程序是大势所趋,win32(只能支持4G内存)逐渐退出舞台了,所以x64编译汇编也是必然要知道的.

win32项目步骤:

1.建一个空项目,必须先建空项目,改现成的C++项目为assembler项目可能会造成编译不过.

2.选中项目右键 “生成自定义”,选择MASM生成规则.

3.选中源文件右键-》添加-》新建项
4.选中项目右键-》属性-》链接器-》系统-》 子系统选 “控制台(SUBSYSTEM:CONSOLE)”

5.选中项目右键-》属性-》链接器-》高级-》 入口点 填 "main"

6.测试代码编译运行:

  1. TITLE Add and Subtract              (AddSub.asm)
  2. ; This program adds and subtracts 32-bit integers.
  3. ; Last update: 2/1/02
  4. INCLUDELIB kernel32.lib
  5. .MODEL flat,stdcall
  6. ;.code
  7. ExitProcess PROTO,                      ; exit program
  8. dwExitCode:DWORD        ; return code
  9. .data
  10. .code
  11. main PROC
  12. mov eax,10000h      ; EAX = 10000h
  13. add eax,40000h      ; EAX = 50000h
  14. sub eax,20000h      ; EAX = 30000h
  15. push 0h
  16. call ExitProcess
  17. main ENDP
  18. END main

7.输出,调试时选择菜单 调试-》窗口-》寄存器 就能看到寄存器值。

x64汇编例子:

1. 创建过程和win32一样,之后转换为x64配置. 在活动解决方案平台新建 选择x64.

2. 测试代码,x64和win32的一些Directive不一样了,使用的64位寄存器名也不一样,RAX?,详细不同请参考微软说明文档

  1. TITLE Add and Subtract              (AddSub.asm)
  2. ; This program adds and subtracts 32-bit integers.
  3. ; Last update: 2/1/02
  4. ;.MODEL flat,stdcall x64 not support
  5. .code
  6. EXTERN ExitProcess:PROC
  7. INCLUDELIB kernel32.lib
  8. .data
  9. .code
  10. main PROC
  11. mov eax,10000h      ; EAX = 10000h
  12. add eax,40000h      ; EAX = 50000h
  13. sub eax,20000h      ; EAX = 30000h
  14. push 0h
  15. call ExitProcess
  16. main ENDP
  17. END
  18. ;END main,donot use main

3.调试

参考: http://stackoverflow.com/questions/9319055/visual-c-2010-express-x64-assembly https://msdn.microsoft.com/en-us/vstudio/gg697159 https://msdn.microsoft.com/en-us/library/hb5z4sxd.aspx http://www.masmforum.com/board/index.php?topic=14691.15;wap2 http://blog.csdn.net/natepan/article/details/6781439

[VS2010搭建汇编开发环境win32和x64]的更多相关文章

  1. Masm615+notepad++6.8.8搭建汇编开发环境

    前言:很早以前搭过,做了笔记的.现在重新玩汇编,按照笔记撘环境,谁知道坑了自己两个小时,气的我现在打字手都在抖 准备工作: 1.Masm615汇编环境,下载地址:https://pan.baidu.c ...

  2. win10 64 使用 visual studio 2017 搭建汇编开发环境

    转自http://blog.csdn.net/sinat_27382047/article/details/70339455 插件 vs2015的汇编语法高亮插件(安装就行)这玩意找了我很久= = h ...

  3. 8086汇编语言学习(二) 8086汇编开发环境搭建和Debug模式介绍

    1. 8086汇编开发环境搭建 在上篇博客中简单的介绍了8086汇编语言.工欲善其事,必先利其器,在8086汇编语言正式开始学习之前,先介绍一下如何搭建8086汇编的开发环境. 汇编语言设计之初是用于 ...

  4. Windows系统 为 Visual Studio软件 搭建 OpenCV2 开发环境

    Windows系统 为 Visual Studio软件 搭建 OpenCV2 开发环境 我们的电脑系统:Windows 10 64位 Visual Studio 软件:Visual Studio 20 ...

  5. windows下VisualStudio和QtCreator搭建Qt开发环境

    一.简介 集成开发平台IDE都有各自的长处,编写Qt程序可根据自己的喜好来选择相应的IDE.下述文章都是装载博友的文章,其中有很多细节还得自己调整. 二.详解 1.VisualStudio搭建Qt开发 ...

  6. [转载]使用VS2015搭建Lua开发环境

    参考原文请看: Lua学习笔记1:Windows7下使用VS2015搭建Lua开发环境(一) Lua学习笔记2:Windows7下使用VS2015搭建Lua开发环境(二) 本篇主要分以下几个部分: 一 ...

  7. 单机搭建Android开发环境(五)

    前文介绍了Android系统开发环境的搭建,本文将简单介绍Android应用开发环境的搭建. 基于Android Studio搭建应用开发环境,相比使用Eclipse简单得多.Android Stud ...

  8. ubuntu下搭建JAVA开发环境【转】

    转自:http://jingyan.baidu.com/article/86fae346b696633c49121a30.html JAVA开发环境是一种跨平台的程序设计语言,可以在windows.L ...

  9. 在 Ubuntu 13.10 中搭建Java开发环境 - 懒人版

    本文记录我在Ubuntu 13.10中搭建Java开发环境. 本文环境: Ubuntu 13.10 x64运行在Win7下的VMware Workstation 10中. 1. 安装JDK与JRE s ...

随机推荐

  1. hihoCoder.1457.后缀自动机四 重复旋律7(广义后缀自动机)

    题目链接 假设我们知道一个节点表示的子串的和sum,表示的串的个数cnt,那么它会给向数字x转移的节点p贡献 \(sum\times 10+c\times cnt\) 的和. 建广义SAM,按拓扑序正 ...

  2. BZOJ.3932.[CQOI2015]任务查询系统(主席树 差分)

    题目链接 对于这一区间的操作,我们可以想到差分+前缀和(感觉也没什么别的了..). 同时对于本题我们能想到主席树,而主席树正是利用前一个节点建树的. 所以离散化.按时间排序,把操作拆成单点加和减即可. ...

  3. 关于dubbo服务的xml配置文件报错的问题

    在配置dubbo服务的过程中,经常会遇到虽然程序能够跑起来,但是配置文件一堆红叉,虽然不影响功能,但是确实很让人恶心. 报错信息如下: Multiple annotations found at th ...

  4. OpenVPN搭建中tap与tun的实际使用区别

    tap俗称网桥模式,tun俗称路由模式,tap在二层,tun在三层,在实际应用中,其实以上这些知识概念,我是抄来的,具体的解释可以看以下参考链接. 下面将介绍在实际使用中的区别: 1.tap可以直接使 ...

  5. authentication unavailable: no polkit agent available to authenticate action 'org.libvirt.unix.manage'的问题解决

    这个主要是WebVirtMgr的安装导致出现的错误,解决方法如下: 1.增加libvirtd用户组 groupadd libvirtd 2.设置用户到组 sudo usermod -a -G libv ...

  6. go实现 raft Paxos 算法

    https://github.com/happyer/distributed-computing https://www.zhihu.com/people/ding-kai-54/posts

  7. 更好使用jQuery的8个小技巧

    更好地使用jQuery,这里总结了8个小技巧. 1.DOM遍历是昂贵的,将变量缓存起来. //不推荐var h = $('#ele').height();$('#ele').css('height', ...

  8. IIS7下配置ASP+ACCESS环境

    先要设置应用程序池(Application Pool)为Classic .NET AppPool,而不是默认的Default AppPool,可以在网站目录里对每个站点设置,也可以在站点进行单独设置. ...

  9. Java知识回顾 (3)运算符

    位运算符 Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型. 位运算符作用在所有的位上,并且按位运算.假设a ...

  10. Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(4) DateFormat

    本章主要介绍DateFormat. DateFormat 介绍 DateFormat 的作用是 格式化并解析“日期/时间”.实际上,它是Date的格式化工具,它能帮助我们格式化Date,进而将Date ...