VS2019汇编语言环境配置

一. 基本运行环境

打开VS2019,新建C++空项目

生成依赖项

右键项目名称,依次选择生成依赖项、生成自定义

在弹出的窗口中勾选masm,点击确定

添加汇编源文件

右键“源文件“文件夹,依次选择添加、新建项

在弹出的窗口中选择C++文件(.cpp),注意名称中的后缀名要改为.asm

右键源文件,选择属性,配置如下

至此汇编语言的基本运行环境配置完毕

测试代码(代码来源:汇编语言示例:整数数组求和 (biancheng.net)

;测试ArraySum过程
.386
.model flat,stdcall
.stack 4096
ExitProcess PROTO,dwExitCode:DWORD

.data
array DWORD 10000h,20000h,30000h,40000h,50000h
theSum DWORD ?

.code
main PROC
    mov esi,OFFSET array          ;ESI指向数组
    mov ecx,LENGTHOF array        ;ECX = 数组计算器
    call ArraySum                 ;计算和数
    mov theSum,eax                ;用EAX返回和数

    INVOKE ExitProcess,0
main ENDP
;------------------------------------
;ArraySum
;计算32位整数数组元素之和
;接收:ESI = 数组偏移量
;       ECX = 数组元素的个数
;返回:EAX = 数组元素之和
;-------------------------------------
ArraySum PROC
    push esi                 ;保存ESI和ECX
    push ecx
    mov eax,0                ;设置和数为0

L1:   add eax,[esi]        ;将每个整数与和数相加
    add esi,TYPE DWORD      ;指向下一个整数

    loop L1                 ;按照数组大小重复
   
    pop ecx                 ;恢复ECX和ESI
    pop esi               
    ret                     ;和数在EAX中
ArraySum ENDP
END  main

二. 添加Irvine32链接库

Irvine32 链接库提供了很多简单的输入输岀接口,因此有必要添加Irvine32链接库,方便后续编程

下载并解压

Irvine32 链接库文件下载地址Assembly Language for x86 Processors (asmirvine.com)

记住解压的路径,配置VS2019需要用到

配置VS2019

右键项目,选择属性,打开属性页面板

  1. 选择“Microsoft Macro Assembler”→“General” ,在Include Paths一栏输入Irvine32文件解压的路径
  2. 选择“链接器”→“常规”→“附加库目录”,输入 Irvine32文件解压的路径
  3. 选择“链接器”→“输入”→“附加依赖项”,输入“Irvine32.lib”

点击确定,配置完成

测试代码

.386        
.model flat,stdcall    ;
option casemap:none;
include Irvine32.inc
.data
    VARX db 5
    VARY db 6
    VARZ db ?
    a db 5
    b db 2
.code
start:
;Z=(5X+2Y-7)/2
mov al,VARX
mul a   
mov cx,ax   
mov al,VARY
mul b       
add ax,cx   
sub ax,7    
div b       
mov VARZ,al
exit;
end start

三. 代码高亮插件

VS2019默认没有汇编代码的语法高亮提示,安装AsmDude插件可以实现语法高亮

在VS2019中依次选择扩展->管理扩展,打开管理扩展面板

选择联机,搜索AsmDude,安装后重启VS2019即可

效果如下