[原创]MASM32新手指南

简介: [原创]MASM32新手指南

1、基本使用方法

如何在MASM32中建立、汇编、链接源程序文件和运行生成的可执行文件。

2、如何开启MASM32的在线帮助功能

3、汉化QEDITOR菜单

一、基本使用方法

以在C:/PWIN951/TEMP文件夹下建立TEST.ASM和生成TEST.EXE为例.

安装好MASM32后,打开“资源管理器”或“我的电脑”,进入MASM32所在文件夹(假设为C:/MASM32),双击QEDITOR.EXE

的图标,这就进入了MASM32的集成开发环境。

1.[这一步是可选的,以下可选的步骤均简称为“可选”] 输入资源文件, 然后使用菜单栏上的菜单File -> Save 或 快捷工具栏中的代表存盘功能的磁盘状图标,第一次需要输入文件名,注意要指定扩展名 .RC并存盘,注意如果是在集成环境中编译此资源文件,文件名必须是RSRC.RC(大小写均可)。

2.[可选] 编译资源文件。使用菜单栏上的菜单Project -> Compile Resource File。这时系统会打开一个DOS窗口运行相关的批处理文件,并报告结果。

若不编译成功,信息为(具体错误信息因错误而异):

Microsoft (R) Windows (R) Resource Compiler, Version 5.00.1823.1 - Build 1823
Copyright (C) Microsoft Corp. 1985-1998. All rights reserved.
Using codepage 936 as default
Creating rsrc.RES
RC: RCPP -CP 936 -f C:/PWIN951/TEMP/RCa83947 -g C:/PWIN951/TEMP/RDa83947 -DRC_IN VOKED -D_WIN32 -pc/:/ -E -I. -I .
rsrc.rc.
rsrc.rc (1): error RC2135 : file not found: MAINICON.ICO.
Writing MENU:600, lang:0x409, size 128
Microsoft (R) Windows Resource To Object Converter Version 5.00.1736.1
Copyright (C) Microsoft Corp. 1992-1997. All rights reserved.
CVTRES : fatal error CVT1101: cannot open rsrc.res for reading
Press any key to continue . . .

其中给出了出错语句的行号,错误类型代码及错误信息。

按任一键结束,再关闭此DOS窗口,并按错误信息修改资源文件,存盘后,重新编译。

技巧小提示: 在qeditor.exe中,按Ctlr+G可跳到指定的行

直到显示如下成功信息:

Microsoft (R) Windows (R) Resource Compiler, Version 5.00.1823.1 - Build 1823
Copyright (C) Microsoft Corp. 1985-1998. All rights reserved.
Using codepage 936 as default
Creating rsrc.RES
RC: RCPP -CP 936 -f C:/PWIN951/TEMP/RCa81843 -g C:/PWIN951/TEMP/RDa81843 -DRC_IN
VOKED -D_WIN32 -pc/:/ -E -I. -I .
rsrc.rc.
Writing MENU:600, lang:0x409, size 128
Microsoft (R) Windows Resource To Object Converter Version 5.00.1736.1
Copyright (C) Microsoft Corp. 1992-1997. All rights reserved.
Press any key to continue . . .

说明生成了rsrc.RES和rsrc.obj文件,按任一键结束,再关闭此DOS窗口。

⒊输入源程序,然后使用菜单栏上的菜单File -> Save 或 快捷工具栏中的代表存盘功能的磁盘状图标,第一次需要输入文件名,注意要指定扩展名 .ASM[本例中为C:/PWIN951/TEMP/TEST.ASM]。

⒋汇编源程序。使用菜单栏上的菜单Project -> Assemblier ASM file。这时系统会打开一个DOS窗口运行相关的批处理文件。结束后会弹出一个名为“/masm32/bin/asmbl.txt”的窗口报告结果。

若汇编不成功,则显示信息如下(具体错误信息因错误而异):

Assembling: C:/PWIN951/TEMP/test.asm
C:/PWIN951/TEMP/test.asm(60) : error A2006: undefined symbol : NULL
C:/PWIN951/TEMP/test.asm(60) : error A2114: INVOKE argument type mismatch : argument : 1
Volume in drive C is LIU
Volume Serial Number is 4061-17D7
Directory of C:/PWIN951/TEMP
TEST ASM 8,402 06-05-02 19:29 test.asm
1 file(s) 13,010 bytes
0 dir(s) 24,403,968 bytes free

其中包括了详细出错信息。如

C:/PWIN951/TEMP/test.asm(60) : error A2006: undefined symbol : NULL

C:/PWIN951/TEMP/test.asm 为源程序文件的文件说明符

(60) 其中60为源程序中引起错误的语句的行号

error A2006 A2006为错误类型代号

undefined symbol : NULL 为具体错误信息

这时应按这些信息修改源程序中相应行,存盘后重新汇编。直至窗口显示如下成功信息:

Assembling: C:/PWIN951/TEMP/test.asm
Volume in drive C is LIU
Volume Serial Number is 4061-17D7
Directory of C:/PWIN951/TEMP
TEST ASM 8,401 06-05-02 19:34 test.asm
TEST OBJ 3,720 06-05-02 19:35 test.obj
2 file(s) 16,729 bytes
0 dir(s) 22,298,624 bytes free

其中包括了新生成的目标文件TEST.OBJ的有关信息。

⒌链接目标文件。使用菜单栏上的菜单Project -> Link OBJ file。这时系统会打开一个DOS窗口运行相关的批处理文件,并弹出名为“/masm32/bin/lnk.txt”的窗口报告结果如下:

Volume in drive C is LIU
Volume Serial Number is 4061-17D7
Directory of C:/PWIN951/TEMP
TEST ASM 8,401 06-05-02 19:34 test.asm
TEST OBJ 3,720 06-05-02 19:35 test.obj
TEST EXE 4,608 06-05-02 19:38 test.exe
3 file(s) 16,729 bytes
0 dir(s) 24,395,776 bytes free

其中包括新生成的可执行文件TEST.EXE的有关信息.

注:没有找到资源文件不属于错误,因此如果你的程序使用了窗口,汇编和链接均顺利完成,但运行时却看不到程序窗口,很可是你将窗口信息放在资源文件中,但资源文件尚未编译或编译没有成功。

⒍ 运行生成的可执行文件.使用菜单栏上的菜单Project -> Run program。

看到程序运行的结果了吗?

如果你的程序使用了窗口,但运行时看不到窗口,很可能是你将窗口信息放在资源文件中,但资源文件尚未编译或编译没有成功。

总之,要注意的是,对源程序文件或资源文件修改后一定要先存盘,然后再进行后继操作,否则错误依旧。

Project菜单中其它菜单项的功能和用法:

Assemble & Link 汇编源程序并链接,适用于资源文件未修改,但修改了源程序的情况

Build All 编译资源文件,汇编源程序并链接,适用于资源文件和源程序均修改的情况

Console Link OBJ File 汇编控制台型源程序

&Console Assemble Link 汇编并链接控制台型源程序

Console Build All 生成控制台可执行程序

二、开启MASM32的在线帮助功能

在用MASM32编写程序时,大量使用了WINDOWS API函数,众多的函数不同的参数我们很难记住,只能现用现查。

MASM32提供了在线帮助功能,但必须进行相应设置,才能“招之即来”。

在QEDITOR中按功能键 F1 ,弹出对话框,帮助文件?.Hlp没找到?怎么办?跟我做:

选择菜单TOOLS -> Change Editor settings,弹出名为“Change Quick Editor settings”的窗口,从Double Click Item to Edit下的列表框中找到“F1 Help File = ?.hlp”项,刚才我们看到的?.hlp就在其中,原来MASM32不知我们的帮助文件放在何处,所以只能由我们用户自己来指定位置。

双击这一项,弹出一个对话框,直接输入我们所用的帮助文件的文件说明符,[如我的是“C:/PWIN951/HELP/WIN32.HLP”,是DLEPHI附带的。],或则单击"Browse..."按钮从选择文件对话框中选择。做完后单击"Save"按钮,然后关闭此窗口。

重新启动QEDITOR,将光标定位在一个API函数名,如MessageBox上,按下功能键 F1, 帮助信息出来了吧!

注意:修改设置后要重新启动QEDITOR,新的设置才起作用。

三、汉化QEDITOR菜单

QEDITOR的菜单内容保存在文件QEDITOR.INI中,将其中的菜单项文本改为中文,就完成汉化了(当然你要使用中文版的WINDOWS)。

由于QEDITOR.INI是非常重要的文件,所以修改前一定要备份,修改时也要小心。下面是我将其中对应Project菜单的菜单项文本的汉化后的内容。

; --------------------------------------------------------
; Do not edit this file manually, the sequence of settings
; must be in the correct order and it must have the correct
; number of settings otherwise the editor may not function
; properly.
; --------------------------------------------------------
[editor settings]
MASM32 Version 6
command.com
0
1
1
4
2
2
76
80
70
*
*
*
*
/pwin951/help/win32.hlp
0
[menu settings]
;------------------------------------------------------------
; File paths should have the drive added so that the relative
; paths become absolute paths. This allows the tools to be
; accessed from different drives on the computer.
; -----------------------------------------------------------

[&R工程]

&R 编译资源文件,/MASM32/BIN/Bres.bat {b}

&A 汇编源程序文件,/MASM32/BIN/Assmbl.bat {b}

-

&L 链接目标文件,/MASM32/BIN/Lnk.bat {b}

汇编源程序并链接目标文件,/MASM32/BIN/Build.bat {b}

&B 编译资源文件、汇编源程序并链接目标文件,/MASM32/BIN/Bldall.bat {b}

运行 &Makeit.bat 生成可执行文件,makeit.bat

-

&O 链接控制台目标文件,/MASM32/BIN/Lnkc.bat {b}

&C 汇编和链接控制台文件,/MASM32/BIN/Buildc.bat {b}

&A 一步生成控制台可执行文件,/MASM32/BIN/Bldallc.bat {b}

-

&R 运行程序,{b}.exe


相关文章
|
10天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
7天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2512 16
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
|
6天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1520 14
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
|
2天前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
8天前
|
编解码 JSON 自然语言处理
通义千问重磅开源Qwen2.5,性能超越Llama
击败Meta,阿里Qwen2.5再登全球开源大模型王座
543 14
|
1月前
|
运维 Cloud Native Devops
一线实战:运维人少,我们从 0 到 1 实践 DevOps 和云原生
上海经证科技有限公司为有效推进软件项目管理和开发工作,选择了阿里云云效作为 DevOps 解决方案。通过云效,实现了从 0 开始,到现在近百个微服务、数百条流水线与应用交付的全面覆盖,有效支撑了敏捷开发流程。
19282 30
|
9天前
|
人工智能 自动驾驶 机器人
吴泳铭:AI最大的想象力不在手机屏幕,而是改变物理世界
过去22个月,AI发展速度超过任何历史时期,但我们依然还处于AGI变革的早期。生成式AI最大的想象力,绝不是在手机屏幕上做一两个新的超级app,而是接管数字世界,改变物理世界。
462 48
吴泳铭:AI最大的想象力不在手机屏幕,而是改变物理世界
|
1月前
|
人工智能 自然语言处理 搜索推荐
阿里云Elasticsearch AI搜索实践
本文介绍了阿里云 Elasticsearch 在AI 搜索方面的技术实践与探索。
18837 20
|
1月前
|
Rust Apache 对象存储
Apache Paimon V0.9最新进展
Apache Paimon V0.9 版本即将发布,此版本带来了多项新特性并解决了关键挑战。Paimon自2022年从Flink社区诞生以来迅速成长,已成为Apache顶级项目,并广泛应用于阿里集团内外的多家企业。
17526 13
Apache Paimon V0.9最新进展
|
1天前
|
云安全 存储 运维
叮咚!您有一份六大必做安全操作清单,请查收
云安全态势管理(CSPM)开启免费试用
358 4
叮咚!您有一份六大必做安全操作清单,请查收