一. 基本运行环境
打开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
右键项目,选择属性,打开属性页面板
- 选择“Microsoft Macro Assembler”→“General” ,在Include Paths一栏输入Irvine32文件解压的路径
- 选择“链接器”→“常规”→“附加库目录”,输入 Irvine32文件解压的路径
- 选择“链接器”→“输入”→“附加依赖项”,输入“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即可
效果如下