1、第四章 汇编语言程序设计 第四章 汇编语言程序设计 4.2 伪指令 4.3 汇编语言程序的结构 4.4 汇编语言程序的开发过程 4.5 汇编语言程序结构设计 4.6 系统功能调用 4.7 汇编语言设计实例 4.1 汇编语言语句在了解和熟悉了 86系列指令系统的基础上,本章将介绍宏汇编语言程序的结构,伪指令,以及程序设计的一般过程和各种基本程序结构,然后介绍了系统功能调用,最后给出大量的编程实例。 4.1 汇编语言语句语句是汇编语言源程序的基本组成单位。一个汇编语言源程序中有 3种基本语句:指令语句、伪指令语句和宏指令语句。前两种是最常见、最基本的语句。指令语句和伪指令语句不仅在程序中的功能不同
2、,而且实现其功能的方法和时间也是不同的。1、指令语句 指令语句就是计算机中指令系统的各条指令,每条指令语句在汇编时都产生一个供 CPU执行的机器目标代码。计算机中每条指令语句表示一种基本功能,这些基本功能是在程序运行期间由计算机硬件来实现的。一条指令语句由四个字段组成,其一般格式如下:标号: 指令助记符 操作数 ;注释 一、汇编语言语句种类及其格式2、 伪指令语句 伪指令语句指示汇编程序在汇编源程序时完成某些工作,比如完成数据定义、分配存储区、指示程序结束等。伪指令属于汇编控制命令,它所指示的操作是由汇编程序在汇编源程序时完成的,在汇编时,它不产生目标代码,在将源程序汇编成目标程序后,它就不复
3、存在了。由上可知,伪指令语句与指令语句的主要区别是:伪指令语句经汇编后不产生机器目标代码,而指令语句经汇编后将产生相应的机器目标代码;伪指令语句所指示的操作是在程序汇编时完成的,而指令语句的操作必须在程序运行时才能完成。一条伪指令语句也由四个字段组成,其一般格式如下:符号名 伪指令符 操作数 ;注释 4.1 汇编语言语句一、汇编语言语句种类及其格式( 1)符号名符号名在 伪指令语句中是一个可选项,符号名后面没有冒号,符号名可以是常量名、变量名、过程名 等。( 2)伪指令符伪指令符指定汇编程序要完成的具体操作,它是伪指令语句的核心部分,如数据定义伪指令 DB、 DW、 DD, 段定义伪指令 SE
4、GMENT, 定义过程伪指令 PROC等等。( 3)操作数伪指令中的操作数 可以是常数、字符串、变量、表达式 ,其个数由具体的伪指令决定,各个操作数之间用 “ , ” 分隔。( 4)注释伪指令语句的注释也是可选项,需要时必须以 “ ; ” 开始。 4.1 汇编语言语句一、汇编语言语句种类及其格式3、标识符指令语句中的标号和伪指令语句中的符号名统称为标识符。它们由若干字符组成,标识符的组成规则如下:( 1)一个标识符由 1-3个字符组成。( 2)组成标识符的字符可以是字母( A-Z或 a-z)、 数字( 0-9)、专用字符( “ ? ” 、 “ ” 、 “ ” 、 “ $”、 “ 下划线 _”
5、)。( 3)除数字外,上述其余字符均可作为标识符的首字符, “ ” 只能作为标识符的首字符。( 4)不能使用属于系统的专用保留字。4.1 汇编语言语句一、汇编语言语句种类及其格式二、汇编语言数据与运算符标号 指令 寄存器 说明程序或语句变量 伪指令 标号 的功能宏指令 变量常数表达式源程序的每条语句可表示为:名字 操作码 操作数 ; 注释 4.1 汇编语言语句1、常量常量是没有任何属性的纯数值,它的值在汇编期间已能完全确定,且在程序运行中也不会发生变化。常量分为数值常量、字符串常量和符号常量,它主要用于指令语句中的立即数或伪指令语句中给变量赋初值等。1)数值常量数值常量分为整数和实数。例如:
6、11100011B , 45693 , 0FF2AH , 356703Q都是正确的整数形式, 又如: 543.567, 45.23 , 1.2E2 , 45.4E9 都是正确的实数形式。2)字符串常量字符串常量是用单引号括起来的一个字符或多个字符。字符串常量以单引号中各字符的 ASCII码形式存储在内存中,如 H , 在内存中就是 41H,12 就是 31H, 32H。 使用时可在单引号内直接写字符序列,如 12 AB , 也可写字符的 ASCII码, ASCII码之间用逗号分隔(此时不需要用单引号),如31H, 32H, 41H, 42H表示字符串 12 AB 。3) 符号常量符号常量是指用
7、 EQU伪指令或赋值语句 “=” 定义过的符号名,可作操作数项或在表达式中使用。4.1 汇编语言语句二、汇编语言数据与运算符2、 变量在汇编语言中,变量是一个数据存储单元的名称,即数据存放地址的符号表示。它代表存放在某些存储单元的数据,这些数据在程序运行期间随时可以改变。为方便访问变量,在程序中通过变量名来使用变量。( 1) 变量的定义变量通常在数据段或附加段中使用数据定义伪指令来定义,定义变量就是给数据分配存储单元,有时为存储单元赋予一个变量名,并可同时为这些存储单元预置初值。数据定义伪指令的格式为:变量名 DB(DW、 DD、 DQ、 DT) 表达式 1,表达式 2, 4.1 汇编语言语句
8、二、汇编语言数据与运算符其中:变量名是可选项,它仅代表所定义数据存储区第一个单元的地址; DB、 DW、 DD、 DQ和 DT是伪指令符,具体一条数据定义伪指令取 5种之一。表达式 1,表达式 2 是给变量或指定的存储单元赋予初值,它们有以下几种形式: ( a) 数值表达式 ( b) 字符串表达式 ( c)? 表达式( d) 地址表达式 (只适用于 DW和 DD这两种数据定义伪指令 )( e) 带 DUP的表达式( 2)变量的属性由于存储器是分段使用的,因而源程序定义的变量具有 3个属性:( a) 段属性( SEG)( b) 偏移属性( OFFSET)( c) 类型属性( TYPE)二、汇编语言数据与运算符4.1 汇编语言语句