Assembly

如何在 VS2019 中编写汇编语言程序

liaofan · 10月7日 · 2019年 111次已读

1 开始表演

打开 Visual Studio 2019,在新建项fds-32目时选择空项目,如下所示:

这里是在 C++ 下的空项目,选择后点击右下角的下一步进入到配置页面,如下所示:

在配置好项目名称和需要存储的位置后,点击右下角的创建完成,完2:'fsa成后,右键项目名称,选择生成依赖项中的生成自定义选项,如下所示:

我们使用的是微软自家的汇编编译器 MASM,在弹出的选项框中选中 masm,最后点确定,如下所示:

上面这一步的目的是为了让 masm 编译器来编译你的汇编源程序,接下来就是创建汇编源程序了,右键项目中的源文件选择新建项,如下所示:

在弹出的新建项页面后,选择 C++ 文件,注意此时的文件名称后缀需改成 asm,然后点击添加,如下所示:

2 如何语法高亮

4fewd[

语法高亮有两种方式,一种是由 Kip Irvine(《汇编语言-基于x86处理器》的作者) 提供的语法高亮文件,另外一种就是借助插件来实现,个人建议用第二种方式,因为第一种相][23fdsc对来说设置比较麻烦,具体怎么设置的可移步到 http[:]//asmirvine[.]com ,这里主要说下插件方式,首先点击菜单选项中的扩展,选择管理扩展,在联机选项卡中搜索一个名叫 AsmDude 的插件,如下所示:

由于我之前已安装了,所以这里未出现安装选项,具体详细说明,可以前往这款插件 github 仓库查看 https://github.com/HJLebbink/asm-dude ,如下所示:

3 试下效果吧

示例代码:

.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
	mov ecx, LENGTHOF array
	call ArraySum
	mov theSum, eax

	INVOKE ExitProcess, 0
main ENDP

ArraySum PROC
	push esi
	push ecx
	mov eax, 0
L1:
	add eax, [esi]
	add esi, TYPE DWORD
	loop L1
	pop ecx
	pop esi
	ret
ArraySum ENDP

END main

效果如下:

是不是感觉逼格更高了一个层次,试着去编译4fewd[它吧!如果你在这个过程中遇到什么问题,可以在下方留言提出。

(本文完)

相关文章
暂无相关文章!
0 条回应