第四章汇编语言程序 4.1汇编语句 4.2汇编语言数据 4.38086指令系统 4.4汇编语言伪指今 4.5汇编源程序结构 4.6上机操作过程
第四章 汇编语言程序 4.1 汇编语句 4.2 汇编语言数据 4.3 8086指令系统 4.4 汇编语言伪指令 4.5 汇编源程序结构 4.6 上机操作过程
4.1汇编语句 4.1.1语句种类 汇编语言有3种语句类型,指令语句、伪指令语句、宏指令 语句。指令语句是可执行语句,在汇编时可产生供机器 执行的二进制目标代码。 例4.1 mov ax,.1000h 反汇编代码:0B10:0100 B80010 M0VAX,1000 伪指令今语句是不可执行语句,在汇编时不产生目标代码, 汇编程序主要利用它分配存储单元和定义程序段等。 例4.2Xdw1000h 汇编程序在汇编时为变量X分配1个字存储单元,初值是 1000h。 宏指令语句要求先定义后使用,它是一个宏名代替宏体的 过程。 o8888 2
4.1 汇编语句 4.1.1 语句种类 汇编语言有3种语句类型,指令语句、伪指令语句、宏指令 语句。指令语句是可执行语句,在汇编时可产生供机器 执行的二进制目标代码。 例4.1 mov ax, 1000h 反汇编代码:0B10:0100 B80010 MOV AX,1000 伪指令语句是不可执行语句,在汇编时不产生目标代码, 汇编程序主要利用它分配存储单元和定义程序段等。 例4.2 X dw 1000h 汇编程序在汇编时为变量X分配1个字存储单元,初值是 1000h。 宏指令语句要求先定义后使用,它是一个宏名代替宏体的 过程。 2
4.1.2语句格式 指令语句和伪指令语句具有相似的语句格式,都由4● 部分组成,一般格式为: [][] [;] 1.符号说明 在汇编语言中,允许使用如下语言成分: 字母:a~zA~Z 数字:0~9 字符:?;:,0$[]
4.1.2 语句格式 指令语句和伪指令语句具有相似的语句格式,都由4 部分组成,一般格式为: [] [] [;] 1.符号说明 在汇编语言中,允许使用如下语言成分: 字母:a~z A ~Z 数字:0~9 字符:?; : , @ $ [] 3
2.名字 名字是一串字符序列,最多包含31个字符。在汇编语言中,● 名字的应用范围很广,有寄存器名、变量名、常量名、 标号、指令名等等。在语句格式中作为第一可选成分出 现的,在不同的语句中具有不同的含义。它在指 令语句中表示标号,后面必须跟有冒号“:”;而在伪 指令语句中表示变量名,常量名,段名,过程名,后面 不能有冒号。这是两种语句在格式上的主要不同之处。 指令语句中的标号和伪指令语句中变量名,段名,过程名 是一种符号地址,可作为汇编指令的一个操作数,但常 量名不是符号地址,不能用做目的操作数。不同的标号、。 变量和常量不能同名。 889
2.名字 名字是一串字符序列,最多包含31个字符。在汇编语言中, 名字的应用范围很广,有寄存器名、变量名、常量名、 标号、指令名等等。在语句格式中作为第一可选成分出 现的,在不同的语句中具有不同的含义 在不同的语句中具有不同的含义。它在指 令语句中表示标号,后面必须跟有冒号“:”;而在伪 指令语句中表示变量名 指令语句中表示变量名,常量名,段名,过程名,后面 不能有冒号。这是两种语句在格式上的主要不同之处。 指令语句中的标号和伪指令语句中变量名,段名,过程名 是一种符号地址,可作为汇编指令的一个操作数,但常 量名不是符号地址,不能用做目的操作数。不同的标号、 变量和常量不能同名。 4
3.操作码 操作码是汇编语句格式中唯一不可或缺的语法成分。 它可以是指令助记符,如ADD,SUB等,汇编程序将它翻 译成机器指令;也可以是伪指令操作助记符,汇编程序 将根据具体要求在程序编译时进行相应处理。 4.操作数 操作数可以是寄存器,常量,变量,标号,表达式。在指 令语句中,可以没有操作数,最多有两个操作数。在伪 指令语句中,则给出一系列参数。使用两个操作数或多 个参数时,相互间需要用“,”分隔。 5.注释 注释由分号“;”开头,用来对语句的功能加以说明,●· 容易阅读。 o8889
3.操作码 操作码是汇编语句格式中唯一不可或缺的语法成分。 它可以是指令助记符,如ADD,SUB等,汇编程序将它翻 译成机器指令;也可以是伪指令操作助记符,汇编程序 将根据具体要求在程序编译时进行相应处理。 4.操作数 操作数可以是寄存器,常量,变量,标号,表达式。在指 令语句中,可以没有操作数 可以没有操作数,最多有两个操作数 最多有两个操作数 。在伪 指令语句中,则给出一系列参数。使用两个操作数或多 个参数时,相互间需要用“,”分隔。 5.注释 注释由分号“;”开头,用来对语句的功能加以说明, 容易阅读 。 5
4.2汇编语言数据 汇编语言数据是组成指令操作数或伪指令参数的主 要成分。数据的形式有常量、变量、标号、表达 式等。 4.2.1常量 在程序运行过程中,值不发生变化的量称为常量。 常量主要用于伪指令语句中给变量赋初值,或用 作指令语句中的立即操作数,以及相对寻址方式 中的位移量
4.2 汇编语言数据 汇编语言数据是组成指令操作数或伪指令参数的主 要成分。数据的形式有常量、变量、标号、表达 式等 。 4.2.1 常量 在程序运行过程中,值不发生变化的量称为常量 。 常量主要用于伪指令语句中给变量赋初值,或用 作指令语句中的立即操作数,以及相对寻址方式 中的位移量。 6
常量分类: 数值型常量、符号常量和字符型常量 1.数值型常量 二进制,八进制,十进制,十六进制 2.符号常量 对经常引用的数值型常量,可以用等价伪指令QU或 等号伪指令“=”给它定义一个名字,然后在语句 中用这个名字来代表该常量。这个名字称为符号 常量。 例4.3 COUNT EQU 90 VALUE -60
常量分类: 数值型常量、符号常量和字符型常量。 1.数值型常量 二进制,八进制,十进制,十六进制 2.符号常量 对经常引用的数值型常量,可以用等价伪指令EQU或 等号伪指令“=”给它定义一个名字 给它定义一个名字,然后在语句 中用这个名字来代表该常量。这个名字称为符号 常量。 例4.3 COUNT EQU 90 VALUE = 60 VALUE = 60 7
3.字符型常量 用引号括起来的一个或多个字符称为字符型常量, 引号中字符的ACII码值,即是该字符型常量的值。 例如“B”的值是42H,而“BA”的值是4241H。因此 字符型常量与数值型常量可以相互通用。 .o 88
3.字符型常量 用引号括起来的一个或多个字符称为字符型常量。 引号中字符的ASCII码值,即是该字符型常量的值。 例如“B”的值是42H,而“BA”的值是4241H。因此 字符型常量与数值型常量可以相互通用。 8
4.2.2变量 1.变量 在汇编语言中,变量是一个数据存储单 元的名字,即数据存放地址的符号表 示。由于主存是分段使用的,因而对 源程序中所定义的变量应体现出以下 三方面的属性
4.2.2 变量 1.变量 在汇编语言中,变量是一个数据存储单 元的名字,即数据存放地址的符号表 示。由于主存是分段使用的,因而对 源程序中所定义的变量应体现出以下 三方面的属性。 9
变量三属性: 1)变量的段属性 变量的段属性(地址)是指定义变量所在段的段首址,当需 要访问该变量时,该段首址一定要在某一段寄存器中。 2)变量的偏移属性 变量的偏移属性(地址)是指变量所在段的段首址到该变量 定义语句的字节距离。 3)变量的类型 是指存取变量中的数据时所需要的字节数,也是存取变量数 据的交换单位。它可以是字节类型、字类型、双字类型、 四字类型、十字节类型。这些类型的选择由定义该变量时 所使用的数据定义伪指令确定。 88 10
变量三属性: 1)变量的段属性 变量的段属性(地址)是指定义变量所在段的段首址,当需 要访问该变量时,该段首址一定要在某一段寄存器中。 2)变量的偏移属性 变量的偏移属性(地址)是指变量所在段的段首址到该变量 定义语句的字节距离。 3)变量的类型 是指存取变量中的数据时所需要的字节数,也是存取变量数 据的交换单位。它可以是字节类型、字类型、双字类型、 四字类型、十字节类型。这些类型的选择由定义该变量时 所使用的数据定义伪指令确定。 10