汇编语言程序设计第5章.ppt_第1页
汇编语言程序设计第5章.ppt_第2页
汇编语言程序设计第5章.ppt_第3页
汇编语言程序设计第5章.ppt_第4页
汇编语言程序设计第5章.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京科海电子出版社北京科海电子出版社 http:/ 第5章 汇编语言语法 北京科海电子出版社北京科海电子出版社 http:/ 5.1 汇编语言中的表达式 1.常量 常量是指那些在将源程序翻译成目标程序期间已经有确定数 值的量。常量主要用于伪指令语句中给变量赋初值,或者用作机 器指令语句中的立即操作数,变址寻址和基址变址寻址中的位移 量、比例因子等。 2.算术运算符 算术运算包括:加()、减()、乘()、除()、 模除(MOD)、右移(SHR)和左移(SHL)。 5.1.1 数值表达式 北京科海电子出版社北京科海电子出版社 http:/ 5.1 汇编语言中的表达式 5.1.1 数值表达式 3.逻辑运算符 逻辑运算包括:逻辑乘(AND)、逻辑加(OR)、按位加( XOR)和逻辑非(NOT)4种运算。 4.关系运算符 关系运算包括:相等(EQ)、不等(NE)、小于(LT)、 大于(GT)、小于等于(LE)及大于等于(GE)。 北京科海电子出版社北京科海电子出版社 http:/ 5.1 汇编语言中的表达式 5.1.2 地址表达式 地址表达式是计算存储单元地址的表达式,它可由标号、变 量名和由括号括起来的基址或变址寄存器组成。 1.标号 标号是指在代码段内定义和使用的指令地址,其实就是机器 指令语句存放地址的符号表示,也可以是子程序名,即子程序入 口地址的符号表示。标号代表了指令的符号地址,它有3个属性: l标号的段属性 l标号的偏移地址 l标号的类型 北京科海电子出版社北京科海电子出版社 http:/ 5.1 汇编语言中的表达式 5.1.2 地址表达式 2.变量 变量是内存中一个数据区的名字,即数据存放地址的符号表 示,作为指令的存储器操作数来引用。具有以下3个方面的属性: l变量的段属性 l变量的偏移地址 l变量的类型 变量的定义格式为: 变量名数据定义伪指令 表达式, 北京科海电子出版社北京科海电子出版社 http:/ 5.1 汇编语言中的表达式 5.1.2 地址表达式 汇编语言的地址表达式形成的结果是存储器地址,用来表示 指令中的标号或变量操作数。地址表达式的值一般都是段内偏移 地址,因此,它具有段、偏移地址及类型3个属性。 地址表达式是由变量、标号、常量、寄存器(各种存储器寻 址方式中可以用到的寄存器,如BP、BX、SI、DI、EBX等)的 内容(用寄存器名加方括号表示)和运算符组成的有意义的式子 。单个的变量、标号、寄存器的内容是地址表达式的特例。 北京科海电子出版社北京科海电子出版社 http:/ 5.1 汇编语言中的表达式 5.1.3 特殊运算符 1.属性替换运算符 (1)强制类型运算符PTR 强制类型运算符PTR用来明确指出某个变量、标号或地址表 达式的类型属性,使它们临时兼有与原定义所不同的类型属性, 但保持它们原来的段属性和位移量属性不变,使用格式是: 类型 PTR 地址表达式 北京科海电子出版社北京科海电子出版社 http:/ 5.1 汇编语言中的表达式 5.1.3 特殊运算符 (2)段基址取代运算符“:” 段基址取代运算符“:”,也称为跨段前缀,用于临时给变量 、标号或地址表达式指定一个段属性,它有3种格式: 段寄存器:地址表达式 段名:地址表达式 组名:地址表达式 北京科海电子出版社北京科海电子出版社 http:/ 5.1 汇编语言中的表达式 5.1.3 特殊运算符 (3)短取代运算符 SHORT 短取代运算符“SHORT”通常用在标号前,告诉汇编程序目标 指令在本条指令的-128+127个字节范围内执行,并生成节省 一个字节的机器指令。 (4)类型定义运算符THIS 类型定义运算符“THIS”与PTR类似,用于建立同一地址而类 型不同的变量或标号,方便按不同类型变量的存取或程序发生转 移。使用格式:THIS 类型 北京科海电子出版社北京科海电子出版社 http:/ 5.1 汇编语言中的表达式 5.1.3 特殊运算符 2.属性分离运算符 (1)取段基址运算符SEG 格式: SEG 变量或标号;从其后的变量或标号的属性中分离出段基址 (2)取偏移地址运算符OFFSET 格式: OFFSET 变量或标号;从其后的变量或标号的属性中 分离出偏移地址 北京科海电子出版社北京科海电子出版社 http:/ 5.1 汇编语言中的表达式 5.1.3 特殊运算符 (3)取类型值运算符TYPE 格式: TYEP 变量或标号 ;取其后变量或标号的类型值 3.返回数值运算符 (1)LENGTH 格式: LENGTH 变量 ;取变量数据项个数 (2)SIZE 格式: SIZE 变量 ;取变量数据项长度 北京科海电子出版社北京科海电子出版社 http:/ 5.1 汇编语言中的表达式 5.1.3 特殊运算符 (3)HIGH和LOW 格式: HIGH/LOW 常量 ;字节分离 4.表达式中运算符的优先级别 l LENGTH、SIZE、括号(圆括号、方括号、尖括号)。 l跨段前缀运算符(:)。 lPTR、OFFSET、SEG、TYPE、THIS;HIGH、LOW。 l*、/、MOD、SHL、SHR;、。 lEQ、NE、LT、LE、GT、GE。 lNOT;AND;OR、XOR;SHORT。 北京科海电子出版社北京科海电子出版社 http:/ 5.2 伪指令 汇编语言最主要的特点是用助记符代替机器指令的操作码,用符 号代替操作数地址或操作数,这就是汇编语言中的机器指令语句。 伪指令又称为伪操作,它是在对源程序汇编期间由汇编程序处理 的操作,它们可以完成如处理器选择、定义程序模式、定义数据、分 配存储区、指示程序结束等功能。每一条伪指令都对应着一段处理程 序,这些程序均作为汇编程序的一部分保存在磁盘上,因此,使用在 源程序中的伪指令只为汇编程序所识别。汇编程序在将源程序翻译成 目标程序时,每遇到伪指令,即转入对应的处理程序执行,执行完该 处理程序,也就实现了这条伪指令的功能。 北京科海电子出版社北京科海电子出版社 http:/ 5.2 伪指令 32位PC系列微型计算机有386、486、Pentium和PentiumII 、PentiumIII、Pentium4等多种CPU,也就有多种指令系统。如 果在程序中没有指定任何方式伪指令,则汇编程序MASM默认的方式 是8086/8088CPU和8087协处理器的指令系统以及浮点变量的 IEEE格式。这就是目前高校教学使用较多的16位机汇编方式,在此 称之为传统方式。 方式伪指令通常放在源程序的开头,或者特殊需要的地方。带点 “.”的方式伪指令主要有:.8086、.386、.386p、.486、.486p、 .586、.686、.MMX等 5.2.1 方式伪指令 北京科海电子出版社北京科海电子出版社 http:/ 5.2 伪指令 段定义伪指令是表示一个段开始和结束的命令,其用途是指定段 的名称和范围,并指明段的定位类型、组合类型及类别。常用的段定 义伪指令有SEGMENT、ENDS和ASSUME。 1.SEGMENT/ENDS伪指令 使用格式如下: 段名 SEGMENT 使用类型 定位类型组合类型类别 段名 ENDS (1)使用类型 5.2.2 段定义伪指令 北京科海电子出版社北京科海电子出版社 http:/ 5.2 伪指令 (2)定位类型 (3)组合类型 (4)类别 2.ASSUME伪指令 ASSUME伪指令是建立段和段寄存器关系的伪指令,其格式为: ASSUME 段寄存器名:段名 ,段寄存器名:段名, 5.2.2 段定义伪指令 北京科海电子出版社北京科海电子出版社 http:/ 5.2 伪指令 3.段组定义伪指令GROUP 段组定义伪指令GROUP能把多个同类段合并为一个64KB的物理 段,并用一个段组名统一存取它。段组定义伪指令GROUP的格式如 下: 段组名 GROUP 段名 ,段名 4.置地址计数器伪指令ORG 5.2.2 段定义伪指令 北京科海电子出版社北京科海电子出版社 http:/ 5.2 伪指令 ORG伪指令用来表示起始的偏移地址,紧接着ORG的数值就是 偏移地址的起始值。ORG伪操作常用在数据段指定数据的存储地址, 有时也用来指定代码段的起始地址。因此,可以使用ORG语句改变地 址计数器的值。 使用格式: ORG 数值表达式 ORG伪指令把地址计数器的值设置为表达式的值,在ORG语句 后面的占用存储器的语句便从此值开始进行分配。 5.2.2 段定义伪指令 北京科海电子出版社北京科海电子出版社 http:/ 5.2 伪指令 在程序的开始可以用NAME或TITLE作为模块的名字,其格式为 : NAME模块名 TITLE文件名 表示源程序结束的伪指令的格式为: END标号 END伪指令中的“标号”指示程序开始执行的起始地址。如果多个 程序模块相连接,则只有主程序的END要加上标号,其他子程序模块 则只用END而不必指定标号。 5.2.3 程序开始和结束伪指令 北京科海电子出版社北京科海电子出版社 http:/ 5.2 伪指令 80X86提供了各种数据及存储器分配伪指令,这些伪指令在汇编 程序对源程序进行汇编期间,由汇编程序完成数据类型定义及存储器 分配等功能。 语句格式: 变量名 数据定义伪指令 表达式, 5.2.4 数据定义伪指令 北京科海电子出版社北京科海电子出版社 http:/ 5.2 伪指令 1. LABEL伪指令 LABEL可以使同一个变量具有不同的类型属性。其格式为: 变量名 LABEL 类型 或 标号 LABEL 类型 2. 表达式赋值伪指令EQU和= EQU是一个赋值伪指令,它给一个数据标号赋予一个常数值,但 这个常数不占用存储单元。EQU可以在数据段之外使用,甚至可用在 代码段中间。赋值伪指

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论