• Microsoft Visual Studio 配置汇编语言开发环境


    Microsoft Visual Studio 配置汇编语言开发环境

    Microsoft Visual Studio配置汇编语言开发环境   

    本篇转自:https://blog.csdn.net/qq_28249373/article/details/83475107
       

    一般情况下,大都数人都不会想用汇编这种古老的语言,但有时候想操控硬件或者想优化程序,又不得不用到汇编语言。汇编语言的编写,调试是一件非常麻烦的事,要是有一个集成的开发环境,那写汇编就可以说是得心应手。就目前来看,似乎没有哪个好的、免费的汇编IDE可以用,如果有的话,那微软的VS(daoban的也算免费)算是一个吧。下面就讲一讲如何在VS2015中配置汇编语言开发环境(纯汇编语言开发环境配置,而不是C语言内嵌汇编语言)。

    一、首先,安装VS,这个不用说,2015,2017或者以后的版本,这里用作例子的就是2015版。

    二、安装汇编语言语法高亮插件。这一步不是必须的,但如果有语法高亮和提示的话,开发起来会很爽!下面用图来说明。

    打开VS2015,在菜单栏上选择“工具》扩展和更新”

    联机搜索“asm”,可以看到两个汇编高亮插件,这两个插件都可以用,本人觉得第一个更好用一些。

    选择高亮插件,下载安装,然后重新启动VS方可使用。

    三、项目配置汇编开发环境。这一步是能否编译汇编语言的关键!

    首先,创建项目,这个跟开发C语言是一样的。任选一个项目都可以,这里选择“空项目”。

    创建好项目后,对项目属性进行配置。右击项目名称,然后在弹出的菜单中选择“生成依赖项》生成自定义”。这一步相当于告诉IDE,我要开发的是汇编语言,而不是其他的。

    在“生成自定义”中勾选“masm”,完成开发环境的配置。

    四、添加汇编语言源程序(.asm)文件

    右键asm文件,选择“属性”,此步是为了设置asm文件的属性,根据自己需要做相应的更改。也可以不做更改,使用默认设置。

    一般情况下,把“Use Safe Exception Handelers”项设为“是”,否则在“Release”模式下,生成解决方案会报错。这个后面会说到。

    五、汇编程序编写、编译和调试

    先写一段小代码测试一下是否配置正确。很短的代码,就是两个寄存器相加。start是标签,用来定义代码的位置,end表示程序结束,end后面的start表明了程序的入口点为start处,相当于C语言的main函数的入口点是main。一个工程中可以有一个或多个asm文件,要生成解决方案的话,就要指定一个入口点,让系统知道,程序应该从哪里开始。

    将鼠标放在关键字处,可以看到高亮插件给出的提示,比如指令的用法、指令的性能,这给汇编开发带来的极大的方便。

    生成解决方案可以对程序进行调试。“生成》生成解决方案”,“调试》逐语句”。在“逐语句”调试模式下,可以查看寄存器的值。选择“调试》窗口》寄存器”

    到此为止,VS纯汇编语言开发环境配置完毕。其实配置不算很麻烦,微软的VS还是挺好用的。

    六、汇编开发可能会遇到的一些问题

    本人刚开始用VS开发汇编语言时遇到不少问题。如果“编译”报错,很可能是语法不正确,检查程序是否有写错的地方,或者有错误的指令用法。其他配置问题,主要有以下几个:

    1.生成解决方案时报错:“无法导出子系统,必须定义它”。如果是选择“编译”的话,没有语法错误,一般都能通过。如果是“生成解决方案”的话,设置不对,有可能报错。

    解决方法:指定一个子系统。因为创建工程的时候选择的是“空项目”,没有指定是控制台,还是win32。所以生成解决方案之前必须指明是那种类型的项目,也就是选择“子系统”。如果一开始选择“控制台”或者“win32”项目,就不会出现这种报错。

    2.生成解决方案时报错:“模块对于SAFESEH是不安全的”“无法生成SAFESEH映像”。这个问题是asm文件属性设置的问题。一般情况下,默认的asm属性设置在debug模式下是不会报错的,但在release模式下就会。这时,在asm文件属性中的“Use Safe Exception handlers”设为“是”,就可以解决这个问题。

    3.生成解决方案时提示没有入口点问题。如果是生成解决方案(生成exe文件),那是一定要指定入口点的,就像C语言一定要有main函数一样。汇编程序也要设置入口点,见下图:

    start定义入口位置,end 后面跟着start,是指明start为入口点。在一个工程中必须要有入口点,但入口点只能有一个,也就说end xxx这种情况只能出现一次,不能在每个asm文件中都来一个end xxx。缺少入口点的报错有多种,其中一种如下图:

    出错总结:如果“编译”报错,很可能是语法有问题。如果“编译”成功,而“生成解决方案”时报错,那就看看asm属性设置是否正确,是否指定了子系统,是否设置了入口点。

     
    VS写汇编用到的的东西
    02-10
    内含: masm库(lib,include) AsmHighlighter15/17(asm高亮插件)
    VS2017配置汇编语言开发环境
    VS2017配置汇编语言开发环境 文章目录VS2017配置汇编语言开发环境MASA简介第一步打开VS新建一个空项目第二步在源文件出添加一个新建项第三步进行工程配置第四步程序调试安装汇编语言语法高亮插件错误记录列表文件生成和编译的冲突 MASA简介 Microsoft Macro Assembler(MASA)宏汇编程序是一种x86汇编程序,它使用Intel的语法在MS-DOS和Microsoft ...

    Win10下搭建汇编语言开发环境(利用DOSBOX和MASM32)_ynd...
    2-18
    本人初次学习汇编语言已经是五年前,但一直都未亲自实践过,最近工作上需要用到反汇编二进制可执行文件,因此计划重新拾起曾经学过的汇编语言,以便能够顺利完成手头上的项目。以下是搭建基于DOSBOX+MASM32的汇编语言开发环境记录。
    详解汇编语言开发环境搭建方法_小木的博客_汇编语言环境
    3-11
    汇编语言几乎是所有程序员在大学时的必修课,本文将给大家介绍的是四种汇编语言开发环境搭建方法 由于这些日子一直都在研究底层的技术,从 Windows 驱动程序,到 Windows 内核等等技术的学习, 让我对底层的技术越发有兴趣了,而刚好,在...
    汇编语言,汇编语言的编程环境。
    04-06
    轻松汇编是一个汇编语言的集成开发环境,主要面向汇编语言的初学者。它提供了一个在Windows界面下的汇编语言开发环境,具有了一般的集成开发环境所提供的功能。例如:原来需要烦琐的命令行才能完成的工作,现在只需要简单的鼠标单击就可以完成,而且复杂的参数也只要进行一下设置就可以了。还有,它会截获错误信息,并显示在错误窗口上,只要点击一下错误信息,对应的错误行就会在编辑窗口突出显示出来。   除了一般的功能外,它还针对汇编语言的特殊性和汇编语言初学者的特殊性,提供了一些专门针对汇编语言和专门针对汇编语言初学者的功能。
    在vs2017中编写汇编
    在Visual Studio 2017中写汇编,环境配置
    Windows10 下搭建汇编语言开发环境( 利用 DOSBOX 和 MASM32 )
    3-5
    以下是搭建基于 DOSBOX + MASM32 的汇编语言开发环境记录。 汇编IDE:radasm、MasmPlus、Easy Code、Visual Studio、Emu8086、ASM-Tool 等。使用比较多的就是radasm、MasmPlus、Visual Studio。
    汇编语言开发环境_汇编语言开发环境-其它工具类资源-CSDN文库
    3-4
    汇编语言开发环境-masm 很实用的汇编语言开发环境,简单易学,占用空间少,有edit、masm、link可执行文件等。 masm5.0汇编语言开发环境 汇编语言的开发环境,汇编使人民开发简单的应用程序的过程,可以有很简单的用途 ...
    VS如何写汇编语言
    参考链接:https://blog.csdn.net/qq_28249373/article/details/83475107
    汇编程序开发环境搭配
    引子 由于这些日子一直都在研究底层的技术,从 Windows 驱动程序,到 Windows 内核等等技术的学习, 让我对底层的技术越发有兴趣了,而刚好,在研究 WRK 时, 对内存管理,寄存器,地址总线,数据总线,控制总线等的理解不够透彻, 所以越发的想学习汇编程序设计来提升功力, 而由于近来在公司里一直都有项目压着,所以在公司里也实在不好拿本汇编程序设计看, 所以只好晚上回来学习了,...
    汇编开发环境的搭建和使用_hml666888的博客_汇编开发环境
    2-21
    例如,编写程序,判断一个年份是否是闰年的汇编语言源程序,可以在DOS模式
  • 相关阅读:
    codevs 3115 高精度练习之减法 swap
    codevs 3116 高精度练习之加法
    poj 3984 迷宫问题
    codevs m进制转化成10进制
    codevs 1214 线段覆盖
    codevs 3143 二叉树的序遍历
    codevs 3145 汉诺塔
    HDU 5093 Battle ships [二分图匹配]
    HDU 5074 Hatsune Miku [dp] ——2014鞍山现场赛E题
    ZOJ 3793 First Digit (逗比题)
  • 原文地址:https://www.cnblogs.com/sexintercourse/p/16003222.html
Copyright © 2020-2023  润新知