[VS2010搭建汇编开发环境win32和x64]
场景:
1. 虽然使用MASM32也可以编译运行汇编程序,但是既然装了VS2010,它也能支持编译运行汇编吧.不然微软的开发人员难道还不用vs写汇编程序了?
2. x64程序是大势所趋,win32(只能支持4G内存)逐渐退出舞台了,所以x64编译汇编也是必然要知道的.
win32项目步骤:
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
7.输出,调试时选择菜单 调试-》窗口-》寄存器 就能看到寄存器值。
x64汇编例子:
1. 创建过程和win32一样,之后转换为x64配置. 在活动解决方案平台新建 选择x64.
2. 测试代码,x64和win32的一些Directive不一样了,使用的64位寄存器名也不一样,RAX?,详细不同请参考微软说明文档
- TITLE Add and Subtract (AddSub.asm)
- ; This program adds and subtracts 32-bit integers.
- ; Last update: 2/1/02
- ;.MODEL flat,stdcall x64 not support
- .code
- EXTERN ExitProcess:PROC
- INCLUDELIB kernel32.lib
- .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
- ;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]的更多相关文章
- Masm615+notepad++6.8.8搭建汇编开发环境
前言:很早以前搭过,做了笔记的.现在重新玩汇编,按照笔记撘环境,谁知道坑了自己两个小时,气的我现在打字手都在抖 准备工作: 1.Masm615汇编环境,下载地址:https://pan.baidu.c ...
- win10 64 使用 visual studio 2017 搭建汇编开发环境
转自http://blog.csdn.net/sinat_27382047/article/details/70339455 插件 vs2015的汇编语法高亮插件(安装就行)这玩意找了我很久= = h ...
- 8086汇编语言学习(二) 8086汇编开发环境搭建和Debug模式介绍
1. 8086汇编开发环境搭建 在上篇博客中简单的介绍了8086汇编语言.工欲善其事,必先利其器,在8086汇编语言正式开始学习之前,先介绍一下如何搭建8086汇编的开发环境. 汇编语言设计之初是用于 ...
- Windows系统 为 Visual Studio软件 搭建 OpenCV2 开发环境
Windows系统 为 Visual Studio软件 搭建 OpenCV2 开发环境 我们的电脑系统:Windows 10 64位 Visual Studio 软件:Visual Studio 20 ...
- windows下VisualStudio和QtCreator搭建Qt开发环境
一.简介 集成开发平台IDE都有各自的长处,编写Qt程序可根据自己的喜好来选择相应的IDE.下述文章都是装载博友的文章,其中有很多细节还得自己调整. 二.详解 1.VisualStudio搭建Qt开发 ...
- [转载]使用VS2015搭建Lua开发环境
参考原文请看: Lua学习笔记1:Windows7下使用VS2015搭建Lua开发环境(一) Lua学习笔记2:Windows7下使用VS2015搭建Lua开发环境(二) 本篇主要分以下几个部分: 一 ...
- 单机搭建Android开发环境(五)
前文介绍了Android系统开发环境的搭建,本文将简单介绍Android应用开发环境的搭建. 基于Android Studio搭建应用开发环境,相比使用Eclipse简单得多.Android Stud ...
- ubuntu下搭建JAVA开发环境【转】
转自:http://jingyan.baidu.com/article/86fae346b696633c49121a30.html JAVA开发环境是一种跨平台的程序设计语言,可以在windows.L ...
- 在 Ubuntu 13.10 中搭建Java开发环境 - 懒人版
本文记录我在Ubuntu 13.10中搭建Java开发环境. 本文环境: Ubuntu 13.10 x64运行在Win7下的VMware Workstation 10中. 1. 安装JDK与JRE s ...
随机推荐
- 【bzoj3451】Tyvj1953 Normal 期望+树的点分治+FFT
题目描述 给你一棵 $n$ 个点的树,对这棵树进行随机点分治,每次随机一个点作为分治中心.定义消耗时间为每层分治的子树大小之和,求消耗时间的期望. 输入 第一行一个整数n,表示树的大小接下来n-1行每 ...
- Nginx增加模块
http://blog.csdn.net/loyachen/article/details/50902667
- HDU 5832 A water problem 水题
A water problem 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5832 Description Two planets named H ...
- Slickflow.NET 开源工作流引擎高级开发(四) -- 硬核编码:代码式快速构建流程图
前言:通过设计器交互来创建流程图是比较常见的方式,这种方式是比较方便业务人员对流程的操作.然而,在需要流程模板,或者技术开发阶段以及一些自动化流程的处理过程中,使用代码快速创建流程图也是一种非常有必要 ...
- Sed&awk笔记之awk篇(转)
Awk是什么 Awk.sed与grep,俗称Linux下的三剑客,它们之间有很多相似点,但是同样也各有各的特色,相似的地方是它们都可以匹配文本,其中sed和awk还可以用于文本编辑,而grep则不具备 ...
- Delphi : Analyze PE file headers?
Analyze PE file headers? { You'll need a OpenDialog to open a Exe-File and a Memo to show the file i ...
- golang-bcc-bpf-function-tracing
http://www.brendangregg.com/blog/2017-01-31/golang-bcc-bpf-function-tracing.html
- Windows Phone本地数据库(SQLCE):1、介绍(翻译)(转)
一只大菜鸟,最近要学习windows phone数据库相关的知识,找到了一些比较简短的教程进行学习,由于是英文的,顺便给翻译了.本身英语水平就不好,估计文中有不少错误,如果有不幸读到的童鞋请保持对翻译 ...
- Java进程线程理解
一个进程包括由操作系统分配的内存空间,包含一个或多个线程.一个线程不能独立的存在,它必须是进程的一部分.一个进程一直运行,直到所有的非守护线程都结束运行后才能结束. 多线程能满足程序员编写高效率的程序 ...
- 如何快速分析一款ios软件或需求的大流程,然后在业务层实现,不牵扯到界面?
如何快速分析一款ios软件或需求的大流程,然后在业务层实现,不牵扯到界面?