汇编程序实例简单环境(汇编程序实例环境简单文件)「汇编语言编程环境」

汇编语言程序的开发过程:Win32可执行文件叫做PE文件
程序员的工作分创建代码和创建资源两部分 :用include语句包含数据定义和函数声明的头文件
Windows.inc文件定义了Win32 API中很多参数和数据结构
资源文件是一种类似“脚本”的文本文件,其中.rc用不同的语法定义了不同类型的资源
资源脚本文件用到很多预定义值,一般由资源头文件来导入
MASM32软件包中的资源头文件是Resource.h
Win32中这种只包含位置信息的动态库文件称为导入库
1 下载安装masm32MASM是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,如果将此文件夹移此其它位置将不能正常工作
2 利用qeditor.exe编辑asm文件输入以下内容.386.model flat, stdcall option casemap:none include D:\masm32\include\windows.inc Include D:\masm32\include\kernel32.inc include D:\masm32\include\user32.inc includelib D:\masm32\lib\kernel32.lib includelib D:\masm32\lib\user32.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:\masm32\test\test.asm\"
.386386指令集
.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-
汇编程序实例简单环境(汇编程序实例环境简单文件)
(图片来源网络,侵删)

联系我们

在线咨询:点击这里给我发消息