news 2026/2/10 18:13:59

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/2/9 13:21:22

面试百问:Redis常见的故障以及发生场景

作为一个测试同学,被测系统架构中有使用到redis吗?对redis常见的故障有了解吗?又是如何进行测试的呢? 针对常见的redis面试问题,怎样才算一个高质量的回答呢,回答思路一般包括 问题的类型是什么&#xff…

作者头像 李华
网站建设 2026/2/8 11:55:55

食品X光检测机市场格局与关键厂商分析

于食品生产这个行业里头,异物检测可是保障产品安全以及维护品牌声誉极为关键重要的环节,食品X光机身为核心检测设备,借由X射线穿透的原理,能够高效地识别产品里头混入的像金属、玻璃、陶瓷、石子甚至某些硬质塑料等各种各样的异物…

作者头像 李华
网站建设 2026/2/10 18:05:01

模型预测控制(MPC):混动汽车能量管理的革新之道

模型预测控制(MPC)在混合动力汽车能量管理策略开发上的运用。 利用车速预测模型(BP或者RBF神经网络,预测模型资料也有发在其他链接)根据预测的信息对车辆进行优化控制,可以对混动汽车的能量管理具有一定的参…

作者头像 李华
网站建设 2026/2/8 14:07:58

UML,HTML,XML,YAML,JSON的关系概述

探讨的这五种语言/格式各有不同的设计目的和应用领域,它们之间的关系可以从数据表示、结构化标记、序列化、建模等角度来分析。下面将分别介绍它们,然后阐述它们之间的关系,并举例说明。 一、概述 UML(统一建模语言)&…

作者头像 李华