场景:

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. 斯坦纳树 [bzoj2595][wc2008]游览计划 题解

    话说挺早就写过斯坦纳树了,不过当时没怎么总结,也不是很理解……现在来个小结吧~ 斯坦纳树就是包含给定点的最小生成树(个人理解权值应当为正). 一般来讲,给定点的数目应该很小吧...于是我们可以用状压D ...

  2. [NOIp2014提高组]解方程

    思路: 系数的范围有$10^{10000}$,但是用高精度做显然不现实,因此可以考虑一个类似于“哈希”的做法, 对方程两边同时取模,如果取的模数足够多,正确率就很高了. 中间对多项式的计算可以使用$O ...

  3. NOI经验谈

    对于NOI来说,甚至比硬实力更加重要.我觉得一场考试这么几件事要做:看题,选题,分析,编码,调试,测试,骗分. 1.看题 拿到试卷以后的第一件事就是看题.看题不是看小说,要仔细阅读.当然,阅读也不宜过 ...

  4. BZOJ4277 : [ONTAK2015]Cięcie

    假设分成如下三段: [1..i][i+1..j][j+1..n] 考虑中间那一段,设f[i]为前i位组成的数模q的值,pow[i]为$10^i$模q的值,那么有: f[j]-f[i]*pow[j-i] ...

  5. Linux学习笔记03—初识Linux

    命令介绍 忘记root密码的处理方法 系统安装盘的救援模式的使用 一.命令介绍 1.LS命令 ls 查看当前目录下的文件 Ls –l 等同于ll 查看目录的详细信息 Ls –a 查看当前目录下的所有文 ...

  6. $.ajax 方法参数总是记不住,在这里记录一下

    jquery中的ajax方法参数总是记不住,这里记录一下. 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(p ...

  7. 使用清华源和阿里源替代Ubuntu源

    sudo nano /etc/apt/source.list 替换为如下文本 # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors. ...

  8. phpexcel导出excel等比例缩放图片

    list($width, $height, $type, $attr) = getimagesize($img_path); if( $width>100 || $height >100 ...

  9. JAVA泛型中的有界类型(extends super)(转)

    JDK1.5中引入了泛型(Generic)机制.泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数.这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛型方法. Ja ...

  10. java 对mongodb的操作

    java 对mongodb的操作 1.1连单台mongodb Mongo mg = newMongo();//默认连本机127.0.0.1  端口为27017 Mongo mg = newMongo( ...