编程|masm32编程环境下载及一个简单汇编程序实例的运行

汇编语言程序的开发过程:

Win32可执行文件叫做PE文件。

程序员的工作分创建代码和创建资源两部分 :

用include语句包含数据定义和函数声明的头文件 。

Windows.inc文件定义了Win32 API中很多参数和数据结构。

Win32中这种只包含位置信息的动态库文件称为导入库。

1 下载安装masm32

MASM是Microsoft Macro Assembler 的缩写,是微软公司为x86微处理器家族开发的汇编开发环境。

masm从 6.0 版开始 MASM 就改名 ML 了,因为它把编译和连接组合在一起了。而且 6.0 版还对汇编语言进行了大幅改造,使之支持高级语言的很多特性。 6.0 版之后常看到的就是 6.11 、 6.13 、 6.14 MASM32(V8.0 和 V9.0) 。但 Microsoft 从 6.15 版( 2000 年 4 月发布)开始好象就不再单独发布 MASM 的开发工具包了。

http://www.masm32.com/

点击其中的“download“按钮,按提示会下载到一个masm32v11r压缩文件,解压到D:masm32v11r,解压后得到一个5M的install.exe文件,双击,如下:

点击Install:

点击OK:

运行后会将文件加载到一个D:masm32的文件夹中,并有以下对话框,点击“yes“即可。

注意,此时的工作目录是F:masm32,如果将此文件夹移此其它位置将不能正常工作。

输入以下内容

.386
.model flat, stdcall 
option casemap:none 
include D:masm32includewindows.inc 
Include D:masm32includekernel32.inc 
include D:masm32includeuser32.inc 
includelib D:masm32libkernel32.lib 
includelib D:masm32libuser32.lib 
.data 
MsgBoxCaption db "win32 example",0 
MsgBoxText db "Win32 Assembly is Great! ",0 
.code 
start: 
invoke MessageBox, NULL, addr MsgBoxText, addr MsgBoxCaption, MB_OK 
invoke ExitProcess, NULL 
end start 

将文件保存到”D:masm32testtest.asm”。

.386

386指令集。

.MODEL 存储模型 [,语言类型] [,系统类型][,堆栈选项]

用于指定程序中各个段的属性、程序的运行环境,调用规则。

.DATA 或 .DATA?

说明一个数据段的开始,同时也表示上一个段的结束。

.CODE [段名]

说明一个代码段的开始,同时也表示上一个段的结束。

汇编语言的程序格式:

完整的汇编语言源程序由段组成。

一个汇编语言源程序可以包含若干个代码段、数据段、附加段或堆栈段,段与段之间的顺序可随意排列。

需独立运行的程序必须包含一个代码段,并指示程序执行的起始点,一个程序只有一个起始点。

所有的可执行性语句必须位于某一个代码段内,说明性语句可根据需要位于任一段内。

通常,程序还需要一个堆栈段。

16位、32位、64位汇编语言寄存器的缩写、数量,略有不同:

64位有16个寄存器,32位只有8个。但是32位前8个都有不同的命名,分别是e _ ,而64位前8个使用了r代替e,也就是r _。e开头的寄存器命名依然可以直接运用于相应寄存器的低32位。而剩下的寄存器名则是从r8 – r15,其低位分别用d、w、b指定长度。

4 编译、链接、运行

4.1编译

弹出以下窗口:

如果有错,则会有错误提示,如果成功就是上述内容的显示。

会在上述文件夹内生成一个同名的obj文件。

4.2 链接

点击“link obj file“,弹出以下对话框:

会在上述文件夹内生成一个同名的exe文件。

4.3 运行

点击“run program“,弹出以下对话框:

-End-

声明:本站部分文章内容及图片转载于互联 、内容不代表本站观点,如有内容涉及侵权,请您立即联系本站处理,非常感谢!

(0)
上一篇 2019年9月4日
下一篇 2019年9月4日

相关推荐