如果你在用汇编语言来开发windows下的程序的话,MASM32是很好的选择。

(Masm32下载地址请用google搜索罢。)

工欲善其事,必先利其器。

本文主要针对masm32 v8来说明三点:

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

[&Tools]

【Masm】使用教程相关推荐

  1. Masm for MAC安装教程+实例分析

    Masm for MAC安装教程+实例分析 Masm for MAC安装教程+实例分析 起因 安装教程 环境下载 安装和配置 操作以及使用 每次打开DOSBox需要挂载Masm 挂载完毕之后,可以写你 ...

  2. 【2021新教程】win10安装汇编环境(Dosbox+masm)

    1 背景 最近想复习一下本科学过的8086汇编,发现需要装dosbox和masm.在查阅网上资料的时候发现,**网上资料非常老旧.排版乱七八糟,全是蒙着头搞配置也不说为什么,可读性奇差.**所以根据自 ...

  3. masm5安装教程_汇编语言程序环境搭建masm+debug64位 win10/7

    介绍:MASM是Microsoft Macro Assembler 的缩写,是微软公司为x86 微处理器家族开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译 ...

  4. linux 汇编 教程,Linux下实现 MASM汇编

    sudo apt-get install dosbox 步骤二:打开DOSbox,模拟C盘,在DOSbox输入 mount c /home/bao/ms-dos c 后面为自己指定的Linux下的目录 ...

  5. 安装教程——汇编工具(dosbox、masm、masm for windows)

    资源下载: https://download.csdn.net/download/qq_45786729/15567756 Masm 解压相应文件. 创建一个工作目录(例如:e:\dos),在该目录下 ...

  6. 汇编程序设计与计算机体系结构软件工程师教程笔记:内联汇编与宏

    <汇编程序设计与计算机体系结构: 软件工程师教程>这本书是由Brain R.Hall和Kevin J.Slonka著,由爱飞翔译.中文版是2019年出版的.个人感觉这本书真不错,书中介绍了 ...

  7. 汇编程序设计与计算机体系结构软件工程师教程笔记:函数、字符串、浮点运算

    <汇编程序设计与计算机体系结构: 软件工程师教程>这本书是由Brain R.Hall和Kevin J.Slonka著,由爱飞翔译.中文版是2019年出版的.个人感觉这本书真不错,书中介绍了 ...

  8. 汇编程序设计与计算机体系结构软件工程师教程笔记:指令

    <汇编程序设计与计算机体系结构: 软件工程师教程>这本书是由Brain R.Hall和Kevin J.Slonka著,由爱飞翔译.中文版是2019年出版的.个人感觉这本书真不错,书中介绍了 ...

  9. 汇编程序设计与计算机体系结构软件工程师教程笔记:处理器、寄存器简介

    <汇编程序设计与计算机体系结构: 软件工程师教程>这本书是由Brain R.Hall和Kevin J.Slonka著,由爱飞翔译.中文版是2019年出版的.个人感觉这本书真不错,书中介绍了 ...

  10. OllyDbg完全教程

    OllyDbg完全教程 目录 第一章概述..................................................................1 第二章组件....... ...

最新文章

  1. [专业亲测]Ubuntu16.04安装Nvidia显卡驱动(cuda)--解决你的所有困惑【转】
  2. AI不止能美颜,美妆迁移这样做 | 赠书
  3. 【VIOLA】宁可食无肉,不可居无竹
  4. JVM自动化的内存分配与内存回收
  5. hdu-3342-Legal or Not--拓扑排序//两种解法
  6. 修改vsftpd的默认根目录/var/ftp/pub到另一个目录
  7. leetcode 155. 最小栈(常数时间获取最小值,需要维护两个栈)
  8. WPF之Binding(转)
  9. MapReduce 2 中一些基础数据类型
  10. TypeScript+vue使用与迁移经验总结
  11. commit是直接提交到远程吗 svn_xcode 把项目代码提交到远程SVN服务器
  12. linux,shell中if else if的写法,if elif
  13. 【报告分享】华为-5G时代运营商数据和存储架构白皮书.pdf(附下载链接)
  14. java中二叉树_Java工程师面试1000题224-递归非递归实现二叉树前、中、后序遍历...
  15. java读properties的通用类,兼容linux和windows
  16. 后缀树(Suffix tree)
  17. 如何清理电脑C盘垃圾
  18. 龙哥手把手教你学LabVIEW视觉-深度学习简明教程【halcon篇】
  19. 我们该如何选择适合自己的编程语言呢?
  20. background

热门文章

  1. js 全国城市地区编码+拼音+大写首字母
  2. 【java】 drool规则引擎背后的Rete算法
  3. AE CS6 安装后启动报错BUG解决
  4. 微信H5(WAP)支付,遇到的那些坑
  5. sqlbulkcopy是覆盖式更新吗_酒店无线覆盖解决方案,一文了解清楚
  6. socket连接测试工具,window和linux下
  7. MATLAB画圆时却显示椭圆?一个命令解决问题!
  8. Spring data JPA图文教程(一)
  9. 北理乐学c语言答案猴子,【北理乐学】机智的大师
  10. java删除文件夹及下面的所有文件