news 2026/6/25 23:09:25

Intel汇编语言程序设计(第5版)中源代码在Visual Studio2022的汇编环境配置复现(VS2022 + Irvine32)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Intel汇编语言程序设计(第5版)中源代码在Visual Studio2022的汇编环境配置复现(VS2022 + Irvine32)

今天要学习的这本书的封面如下:

目前这本书已经出版到第8版了,我学习使用的是第5版,翻译的作者中有一位是“罗云彬”,就是《Windows 环境下 32 位汇编语言程序设计》的作者,如下:

因为相信作者的实力及翻译水平,就找来学习了。

学习过程中,光看不练,相当于啥也没有学习到,同时,看到书中有作者提到他自己搭建的网站,网站上有视频,也有书籍的全套代码

本书作者使用的是Visual sudio 2010版本,我目前正在使用的是Visual Studio 2022 版本,目前源代码已经在网站上下载下来了,目前就是在VIsual Studio 2022 中进行汇编环境配置,以使用作者提供的源代码进行复现实操。

上面 是作者网站提供的全部源代码的截图。

然后

下载Visual Studio 2022 ,安装Visual C++桌面开发这个模块,一步一步安装下来就可以了。如下所示:

等待全部安装完成后,启动Visual Studio 2022,选择C++空项目,如下:

项目名称、目录等等,根据自己的要求创建即可;

项目new创建后的界面如下:

找到生成依赖项 选择生成自定义

选择 masm --> 确定

新建文件

点击“新建项”后,出现界面如下:

选择cpp文件并在下方手动指定asm后缀

输入以下汇编代码:

; AddTwo.asm - 两个32位整数相加 ; 第三章示例 .386 .model flat, stdcall .stack 4096 ExitProcess PROTO, dwExitCode:DWORD .code main PROC mov eax, 5 add eax, 6 INVOKE ExitProcess, 0 main ENDP END main

配置解决方案的平台

调出解决方案的属性,如下:

查看asm文件的属性页

更改为win32,如下:


将压缩包中Irvine_Library文件夹中的文件全部释放到E:\masm\Irvine中,如下图所示:

打开解决方案资源管理器 --> 右击项目名称 --> 选择属性(最下面) --> 选择 Microsoft Macro Assembler --> Include Paths --> 编辑 --> 添加irvine库目录 (如 下图):

将库文件所在的目录的路径填写在include paths中,如下图所示:

打开解决方案资源管理器 --> 右击项目名称 --> 选择属性(最下面) --> 选择“链接器” --> 选择 “常规” --> 选择“附加库目录” --> 编辑 --> 添加irvine库目录 (如 下图)

打开解决方案资源管理器 --> 右击项目名称 --> 选择属性(最下面) --> 选择“链接器” --> 选择 “输入” --> 选择“附加依赖项” --> 编辑 --> 直接编辑写入 irvine32.lib:

上述配置完成后,用汇编代码测试一下效果,如下:

TITLE EXAMPLE include irvine32.inc .data str1 byte "Hello World!", 0 .code main proc mov edx, offset str1 call writestring call crlf exit main endp end main

可见,弹出DOS对话框,并成功显示出“Hello World!”。


下面说一下调试的内容:

为程序打上断点

在箭头对应的行号处左击就可以插入断点。

点击F5开始调试

开始调试后,可以根据需要调出各个需要的对话框。

CTRL+ALT+G 打开寄存器

点击F5启动调试后,在调试的菜单栏里面可以看到大量的调试用的工具,如下图所示:

按F11逐步运行

或者点击上方的菜单栏,可以逐语句、逐过程地调试汇编代码。

同时,寄存器查看栏中,会有红色字体标示变化的寄存器。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/24 18:47:16

如何用FLUX.1-dev镜像在本地部署下一代AI绘画模型?

如何用FLUX.1-dev镜像在本地部署下一代AI绘画模型? 在数字创作的前沿战场上,一个核心矛盾正日益凸显:用户对图像生成质量的要求越来越高——不仅要“像”,还要“准”;不仅要有美感,更要精准响应复杂提示。而…

作者头像 李华
网站建设 2026/6/25 19:25:08

基于 Comsol 移动网格方法的激光熔池流动数值模拟

基于comsol移动网格方法的激光熔池流动数值模拟,包含马兰戈尼对流,表面张力,重力和浮力,欢迎交流在材料加工领域,激光熔池流动的数值模拟对于理解和优化工艺过程至关重要。今天咱就聊聊基于 Comsol 移动网格方法来模拟…

作者头像 李华
网站建设 2026/6/25 2:16:51

[光学原理与应用-491]:水冷机、零气模块CDA、功率计等影响266皮秒紫外激光器的种子源1064nm功率稳定性结果的主要因素有哪些?

影响 266 nm 皮秒紫外激光器种子源(1064 nm)功率稳定性 的关键因素涉及多个子系统,其中你提到的 水冷机、零气模块(CDA)、功率计 都是重要的外部支撑或监测设备。下面我们从系统工程角度,系统性地分析这些设…

作者头像 李华
网站建设 2026/6/25 12:26:16

昆仑通态MCGS与欧姆龙E5CC温控器通讯实战:PID模式及输出启停控制

昆仑通态MCGS与欧姆龙E5CC温控器通讯PID模式输出启停(KUNL-1) 功能:通过昆仑通态对欧姆龙E5CC温控器 设定温度,读取温控,控制输出启停,切换PID/ON-OFF控制,PID自整定调整。 反应灵敏,通讯稳定可靠。 器件&a…

作者头像 李华