手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

在Visual Studio2019中使用汇编语言编写程序

时间:2024-10-16 10:01:27

1、下载并安装Visual Studio2019。因为社区版,个人开发是免费使用的,无论你开发免费的,或是付费的应用都可以,所以我下载安装的是社区中文版的。在安装的时候,会让你选择工作负载,"使用C++的桌面开发"和"使用C++的游戏开发",这两个任意选择一个就行。这里我选择的是"使用C++的游戏开发",因为除了汇编,我还在学习Direct2D一些相关的东西(我的发际线啊)。

在Visual Studio2019中使用汇编语言编写程序

2、打开Visual Studio,点击"创建新项目",进入下一步。点击第一个"空项目",然后点击"下一步",进入配置新项目。输入"项目名称",选择项目保存"位置","将解决方案和项目放在同一目录中"这个选框可以勾选,也可以不勾选,看个人喜好。最后点击"创建",项目就创建成功了。

在Visual Studio2019中使用汇编语言编写程序
在Visual Studio2019中使用汇编语言编写程序
在Visual Studio2019中使用汇编语言编写程序

3、进入项目后,不要急着创建文件,我们先生成汇编语言所需要的依赖。找到右侧"解决方案资源管理器",在项目名称上单击鼠标右键,在弹出的菜单中依次选择"生成依赖项"->"生成自定义",在弹出的窗口中选择第4项"masm(.targets, .props)",点击"确定"按钮。

在Visual Studio2019中使用汇编语言编写程序
在Visual Studio2019中使用汇编语言编写程序

4、创建asm源文件。右侧"解决方案资源管理器"中,在"源文件"上单击鼠标右键,在弹出的菜单中依次选择"添加"->"新建项",弹出添加新项窗口。选择"C++文件(.cpp)",在下方"名称"中输入文件名,注意文件扩展名改成".asm",比如"test.asm"。点击"添加"按钮,文件创建成功。

在Visual Studio2019中使用汇编语言编写程序
在Visual Studio2019中使用汇编语言编写程序

5、源文件创建成功,就该开始写代码了。但是,这时候写代码,代码是没有任何高亮显示的,代码写出来都是同一个颜色,而且在写的时候,也没有任何代码提示,所以我们来装一个支持汇编语言的插件,名字叫"AsmDude"。我们依次单击顶部菜单栏中的"扩展"->"管理扩展",弹出管理扩展窗口。单击左侧"联机",在右侧"搜索"框中输入"asm",稍等一下,包含"asm"关键字的插件就显示出来了,我们选择第一个"AsmDude"进行安装。"AsmDude"下载完成后,我们需要关闭Visual Studio,这时"AsmDude"会开始进行安装,当"AsmDude"提示安装完成后,我们再打开"Visual Studio",代码就可以高亮显示了。

在Visual Studio2019中使用汇编语言编写程序
在Visual Studio2019中使用汇编语言编写程序

6、开始写代码。这里,我们就使用Irvine库提供的过程来实现一些小功熹栳缂靖能。首先,改变控制台窗口的背景色与前景色,接着每隔一秒,在控制台窗口打印一个随机的英文小写字母,最后弹出一个windows茇坍酮踪消息弹框。代码就不解释了,每步写的都有注释,代码如下:include Irvine32.inc ; 注意,这个文件放的是一些Irvine.lib库文件会用到的(我们也有可能会用到的)预定义宏(或者说是常量,但"="定义出来的严格来说不能叫常量,因为是可以改变的),这个文件在我电脑上位置是E:\Irvine\Irvine32.inc.dataBlueTextOnGray = blue + (lightGray * 16) ; 背景色为浅灰色,前景色为蓝色caption BYTE "提示信息", 0 ; windows消息弹出框的标题content BYTE "程序成功执行", 0 ; windows消息弹出框的内容.codemain PROC ; 改变控制台窗口背景色与前景色 mov eax, BlueTextOnGray call SetTextColor call Clrscr call randShowChar ; 每隔1秒在控制台窗口打印一个随机的小写英文字母 ; 弹出一个windows消息框 mov ebx, OFFSET caption mov edx, OFFSET content call MsgBox exit ; 结束程序main ENDPrandShowChar PROC USES eax ecx mov ecx, 10 ; 指定循环次数,即打印的字母个数L1: mov eax, 26 call Randomize ; 初始化随机种子 call RandomRange ; 生成一个0到26的随机整数 add eax, 97 ; 生成随机数加97(a-z的ASCII为97-122) call WriteChar ; 打印字母 mov eax, 1000 call Delay ; 暂停1秒 loop L1 retrandShowChar ENDPEND main

在Visual Studio2019中使用汇编语言编写程序

7、由于我们代码依赖Irvine库,所以我们必须有这个库,而且要告诉Visual Studio这个库在哪里(存放位置)。至于这个Irvine库,大家要么自己网上找,要么就直接找我要吧,因为有链接会审核不通过,所以没办法发网址链接之类的

8、我把下载的Irvine库放在了我的E:\Irvine目录下,大家可以随意。下面我们告诉Visual Studio我们的Irvine库放在了哪里,这样Visual Studio链接器,会将库代码插入到已编译的源文件当中。在Visual Studio顶部菜单中依次点击"项目"->"属性",弹出项目属性窗口。在左侧选择"Microsoft Macro Assembler",右侧"Include Paths"输入"E:\Irvine;"(注意,有个半角英文的分号,因为是可以输入多个路径的,多个路径是以分号分隔的)。接着左侧选择"链接器",右侧"附加库目录"输入"E:\Irvine;"(同样注意有分号)。将"链接器"选项展开,在展开项中选择"输入",右侧"附加依赖项"输入框最前面添加"Irvine.lib;"(同样注意有分号)。然后,最上方"配置"选择"所有配置","平台"选择"所有平台"。最后,点击最下方"应用"按钮,再点击"确定"按钮,关闭窗口。

在Visual Studio2019中使用汇编语言编写程序
在Visual Studio2019中使用汇编语言编写程序
在Visual Studio2019中使用汇编语言编写程序
在Visual Studio2019中使用汇编语言编写程序
在Visual Studio2019中使用汇编语言编写程序

9、哦呼。。。到了这里,我们的代码终于可以运行了。点击Visual Studio顶部的" 本地Windows调试器",看一下代码的运行效果吧!如果运行地顺利,我们可以看到一个浅灰色的窗口和一个windows消息弹框。

在Visual Studio2019中使用汇编语言编写程序

10、我们来对上一步稍微作点补充。如果代码没有成功运行,我们在右侧"解决方案资源管理器"中的源文件名(test.asm)上单击鼠标右键,在弹出的菜单中选择"属性",弹出文件属性窗口。左侧选择"常规",右侧"项类型"选择"Microsoft Macro Assembler",点击"应用"按钮,再点击"确定"按钮,关闭窗口。这时,再点击顶部"本地Windows调试器",试着运行一下代码。如果还是不成功,那就是代码的问题了,可能是哪少写或多写了。我们也可以按F11,进行调试,每按一次F11,就会执行一句代码(逐语句调试)。我们在调试的时候,会显示一个"无可用源"页面,这个不用去管,按F11继续进行调试就可以了。在代码执行过程中,我们可以在顶部菜单栏中依次选择"调试"->"窗口"->"寄存器",调出寄存器窗口,来查看寄存器中存放的数据。寄存器窗口默认不显示标志寄存器,我们需要在寄存器窗口中单击鼠标右键,在弹出的菜单中选择"标志",这时寄存器窗口中就显示标志寄存器了。

在Visual Studio2019中使用汇编语言编写程序
在Visual Studio2019中使用汇编语言编写程序
在Visual Studio2019中使用汇编语言编写程序
在Visual Studio2019中使用汇编语言编写程序

11、本来到这里就应该结束了,但。。。啊,不行,还是要补充一下!众所周知,汇编器会读取我们的源文件,生成目标揍茏壅混文件(.obj文件),在这个生成过程中还会产生列表文件。但如果不明确指出你需要列表文件,汇编器是不会把列表文件作为文件保存下来的。同样Visual Studio中也是一样的,我们不告诉它我们需要列表文件,它也是不生成的。现在我们告诉Visual Studio你需要列表文件,让Visual Stuio为我们生出来!在顶部菜单中依次选择"项目"->"属性",弹出项目属性窗口。左侧展开"Microsoft Macro Assembler"项,在展开项中选择"Listing File"。右侧"Generate Preprocessed Source Listing"项,选择"是(/EP)","List All Availabel Information"项,选择"是(/Sa)","Assembled Code Listing File"项,输入"$(ProjectName).lst",点击"应用"按钮,再点击"确定"按钮,关闭窗口。这样我们在调试程序的时候,Visual Studio会生成一个以项目名称作为文件名,以".lst"作为扩展名的列表文件,要看这个文件,我们需要到项目目录下。

在Visual Studio2019中使用汇编语言编写程序
在Visual Studio2019中使用汇编语言编写程序
在Visual Studio2019中使用汇编语言编写程序
在Visual Studio2019中使用汇编语言编写程序

12、如果你能看到这里,说明你跟我一样,也在学汇编。所以。。。让我们一起在变秃的道路上尽情地奔跑吧( ̄︶ ̄)

© 手抄报圈