04第四章 汇编语言程序格式.ppt
文本预览下载声明
第 四 章 教学重点 第3章学习了80x86硬指令,第4章介绍MASM基本的伪指令。第4章重点掌握: 程序的格式、开发方法 参数的表达、变量的定义 变量和标号的属性 硬指令和伪指令 硬指令——使CPU产生动作、并在程序执行时才处理的语句,就是第3章学习的处理器指令 伪指令(Directive)——不产生CPU动作、在程序执行前由汇编程序处理的说明性语句,例如,数据说明、变量定义等等 伪指令与具体的处理器类型无关,但与汇编程序的版本有关 4.1 汇编程序的功能 开发过程1:源程序的编辑 源程序文件要以ASM为扩展名 源程序文件的形成(编辑)可以通过任何一个文本编辑器实现: DOS中的全屏幕文本编辑器EDIT 其他程序开发工具中的编辑环境 EDIT YY.asm 开发过程2:源程序的汇编 汇编是将源程序翻译成由机器代码组成的目标模块文件的过程 MASM 5.0提供的汇编程序是MASM.EXE: MASM YY.asm 如果源程序中没有语法错误,MASM将自动生成一个目标模块文件(YY.obj);否则MASM将给出相应的错误信息 这时应根据错误信息,重新编辑修改源程序后,再进行汇编 汇编程序的主要功能: 开发过程3:目标模块的连接 连接程序能把一个或多个目标文件和库文件合成一个可执行程序(.EXE、.COM文件): LINK YY.obj 如果没有严重错误,LINK将生成一个可执行文件(YY.exe);否则将提示相应的错误信息 这时需要根据错误信息重新修改源程序后再汇编、链接,直到生成可执行文件 开发过程4:可执行程序的调试 经汇编、连接生成的可执行程序在操作系统下只要输入文件名就可以运行: YY 操作系统装载该文件进入主存,并开始运行 4.2 伪操作(伪指令) 伪操作是汇编程序对源程序进行汇编时处理的操作,完成处理器选择、存储模式定义、数据定义、存储器分配、指示程序开始结束等功能。 4.2.1 处理器选择伪操作 .8086 选择 8086 指令系统 .286 选择 80286 指令系统 .286P 选择保护模式下的 80286 指令系统 .386 选择 80386 指令系统 .386P 选择保护模式下的 80386 指令系统 .486 选择 80486 指令系统 .486P 选择保护模式下的 80486 指令系统 .586 选择 Pentium 指令系统 .586P 选择保护模式下的 Pentium 指令系统 4.2.2 段定义伪操作 1、完整段定义伪操作 data segment ; 定义数据段 … data ends extra segment ; 定义附加段 … extra ends code segment ; 定义代码段 assume cs:code, ds:data, es:extra start: mov ax, data mov ds, ax ; 段地址 ? 段寄存器 … code ends end start 段假设 用来明确段和段寄存器的关系 格式如下: ASSUME 段寄存器名:段名 完整段定义格式 段名 SEGMENT [定位类型] [组合类型] [使用类型] [‘类别’] …… …… ; 语句序列 段名 ENDS 段定位(align)属性 指定逻辑段在主存储器中的边界,可为: BYTE 段开始为下一个可用的字节地址(xxxx xxxxb) WORD 段开始为下一个可用的偶数地址(xxxx xxx0b) DWORD 段开始为下一个可用的4倍数地址(xxxxxx00b) PARA 段开始为下一个可用的节地址(xxxx 0000b) PAGE 段开始为下一个可用的页地址(0000 0000b) 简化段定义伪指令的代码和数据段默认采用WORD定位,堆栈段默认采用PARA定位 完整段定义伪指令的默认定位属性是PARA,其低4位已经是0,所以默认情况下数据段的偏移地址从0开始 段组合(combine)属性 指定多个逻辑段之间的关系,可为: PRIVATE 本段与其他段没有逻辑关系,不与其他段合并,每段都有自己的段地址。这是完整段定义伪指令默认的段组合方式 PUBLIC 连接程序把本段与所有同名同类型的其他段相邻地连接在一起,然后为所有这些段指定一个共同的段地址,也就是合成一个物理段。这是简化段定义伪指令默认的段组
显示全部