第四章汇编语言 4.11汇编语言语句种类及其格式 1基本语句 机器指令语句:对应机器的一种操作,产生对应的目标代码。 伪指令语句:不产生对应的目标代码.。伪汇编程序服务。 宏指令语句:用一条语句定义一组语句指令,产生一组机器 指令的目标代码或一组伪指令定的功能。 2指令语句 格式:[标号:]指令助记符[操作数,操作数][;注释] 3伪指令语句 格式:[符号名]伪指令[参数, 参数][;注释] 汇编语言程序设计
汇编语言程序设计 1 4.1 汇编语言语句种类及其格式 1.基本语句 机器指令语句:对应机器的一种操作,产生对应的目标代码。 伪指令语句:不产生对应的目标代码,伪汇编程序服务。 宏指令语句:用一条语句定义一组语句指令,产生一组机器 指令的目标代码或一组伪指令定的功能。 2.指令语句 格式:[标号:] 指令助记符 [操作数[,操作数]] [;注释] 3.伪指令语句 格式:[符号名] 伪指令 [参数,……,参数] [;注释] 第四章 汇编语言
4标识符( Identifier 指令语句中的标号和伪指令语句中的符号名统称为标识符。 它们是由若干字符构成的。标识符的组成规则如下: 字符个数不多于31个 第一个字符必须是字母,问号“?,“@或下划线“这 四种字符中的 从第二个字符开始,可以是字母,数字,?,@或 ·不能使用属于系统专用保留字( Reserved word) 汇编语言程序设计
汇编语言程序设计 2 4.标识符(Identifier) 指令语句中的标号和伪指令语句中的符号名统称为标识符。 它们是由若干字符构成的。标识符的组成规则如下: •字符个数不多于31个; • 第一个字符必须是字母,问号“?”,“@”或下划线“_”这 四种字符中的一个; • 从第二个字符开始,可以是字母,数字,?,@或_; • 不能使用属于系统专用保留字(Reserved word)
4.2汇编语言数据及伪指令 汇编语言数据 1常数 (1)数值常数 二进制常数:以字母B结尾,0和1组成的序列:0111001B 十进制常数:以字母D结尾(或省略),由0-9的数字组成 的序列。 十六进制常数:以字母H结尾,由0-F组成的序列。 八进制常数:以字母Q结尾,由0-7组成的序列,如:12345Q (2)串常数:由单引号括起来的一个或多个字符组成 AABC 汇编语言程序设计
汇编语言程序设计 3 4.2汇编语言数据及伪指令 一、汇编语言数据 1.常数 (1)数值常数: 二进制常数:以字母B结尾,0和1组成的序列:0111001B 十进制常数:以字母D结尾(或省略),由0-9的数字组成 的序列。 十六进制常数:以字母H结尾,由0-F组成的序列。 八进制常数:以字母Q结尾,由0-7组成的序列,如:12345Q (2)串常数:由单引号括起来的一个或多个字符组成。 如:‘A’ , ’ABC’
常数主要出现在: 1)在指令语句的源操作数中作立即数,它应与目的操 作数的位数相一致,可以是8位或16位二进制数 (2)在指令语句的寻址方式中作位移量。如: (3)在数据定义伪指令中 汇编语言程序设计
汇编语言程序设计 4 常数主要出现在: (1)在指令语句的源操作数中作立即数,它应与目的操 作数的位数相一致,可以是8位或16位二进制数。 (2)在指令语句的寻址方式中作位移量。如: (3)在数据定义伪指令中
2.变量 定义:数据存放地址的符号表示 变量有三种属性 段属性:变量所在段的段首址 偏移地址属性:段首址到变量处的字节个数 类型属性:字节或字等类型,由类型定义伪指令定义。 DB:字节类型--1个字节 DW:字类型一-2个字节 DD:双字节类型--4个字节 DQ:四字类型一-8个字节 DT:十字节类型--1个数据占10个字节 汇编语言程序设计
汇编语言程序设计 5 2.变量 定义:数据存放地址的符号表示 变量有三种属性: 段属性:变量所在段的段首址 偏移地址属性:段首址到变量处的字节个数 类型属性:字节或字等类型,由类型定义伪指令定义。 DB:字节类型--1个字节 DW:字类型--2个字节 DD:双字节类型--4个字节 DQ:四字类型--8个字节 DT:十字节类型--1个数据占10个字节
在数据定义伪指令语句的操作数部分中,所示 的表达式就是给定义的变量预置的初值,它们有如 下几种情况: ①数值表达式:例如: DA BYTE dB 23H, 23 DA WORD DW OABFH, 1234H ②?表达式:不带引号的?表示可预置任何内容。 例如 DA B DB DA W DW 汇编语言程序设计 6
汇编语言程序设计 6 在数据定义伪指令语句的操作数部分中,所示 的表达式就是给定义的变量预置的初值,它们有如 下几种情况: ①数值表达式:例如: DA_BYTE DB 23H,23 DA_WORD DW 0ABFH,1234H ②?表达式:不带引号的 ? 表示可预置任何内容。 例如 DA_B DB ?,? DA_W DW ?,?
③字符串表达式: ·对于DB伪指令,为字符串中每一个字符分配一个 字节单元。字符串必须是用引号括起来的不超过255 个字符。字符串自左至右以字符的ASCI编码按地址 递增的排列顺序依次存放。例如: STRI DB ABCDEF 在存储器中存放的情况如图4.1(a)所示。 对于DW伪指令,可以给两个字符组成的字符串分 配两个字节存储单元,而且这两个字符 ASCII码的存 储顺序是前一字符在高字节,后一字符在低字节 每一个数据项只能是1~2个 STR2 DW AB,‘CD E 汇编语言程序设计
汇编语言程序设计 7 ③字符串表达式: • 对于DB伪指令,为字符串中每一个字符分配一个 字节单元。字符串必须是用引号括起来的不超过255 个字符。字符串自左至右以字符的ASCII编码按地址 递增的排列顺序依次存放。例如: STRl DB ‘ABCDEF’ 在存储器中存放的情况如图4.1(a)所示。 • 对于DW伪指令,可以给两个字符组成的字符串分 配两个字节存储单元,而且这两个字符ASCII码的存 储顺序是前一字符在高字节,后一字符在低字节。 每一个数据项只能是1~2个 STR2 DW ‘AB’ , ‘CD’ , ‘E’
④带DUP表达式:DP是定义重复数据操作符。在表达式中,使用DUP操作 符格式是: DB DW [变量名]DD表达式1DUP(表达式2);注释 DE 其中表达式1是重复的次数,表达式2是重复的内容。 例如 DB 10H DUP (?) D DB2 DB 10H DUP(AB, D DW1 DW 10H DUP( 9 DUP操作符可以嵌套使用,即表达式2可以又是一个带DUP的表达式。例 如 D DB3 DB 10H DUP(3, 2 DUP(8), 6) 表示重复10H个数据序列“3,8,8,6”,共占有4OH个字节单元 汇编语言程序设计
汇编语言程序设计 8 ④带DUP表达式:DUP是定义重复数据操作符。在表达式中,使用DUP操作 符格式是: DB DW [变量名] DD 表达式1 DUP(表达式2) ;注释 DF DQ DT 其中表达式1是重复的次数,表达式2是重复的内容。 例如: D_DB1 DB 10H DUP(?) D_DB2 DB 10H DUP(‘AB’) D_DWl DW 10H DUP(9) •DUP操作符可以嵌套使用,即表达式2可以又是一个带DUP的表达式。例 如 D_DB3 DB 10H DUP(3,2 DUP(8),6) 表示重复10H个数据序列“3,8,8,6”,共占有40H个字节单元
变量的使用 在指令语句中:如要对某存储单元进行存取操作,就可直接引用它的 变量名(即符号地址),例如: DAI DB OAB DA2 DW 34A5H aL, DAl MOV BX, DA2 ·在许多指令语句中,无论在源操作数还是目的操作数中,采用了寄存器 相对寻址或相对基址变址寻址。这时,引用一个变量名就是取用它的偏 移量。例如: DA3 DB 10H DUP ( DA4 DW 10H DUP(1) MOV DA3 SI, BL ADD AX, DA4 BXIDI] 汇编语言程序设计
汇编语言程序设计 9 变量的使用 • 在指令语句中:如要对某存储单元进行存取操作,就可直接引用它的 变量名(即符号地址), 例如: DA1 DB 0ABH DA2 DW 34A5H : MOV AL ,DA1 MOV BX ,DA2 •在许多指令语句中,无论在源操作数还是目的操作数中,采用了寄存器 相对寻址或相对基址变址寻址。这时,引用一个变量名就是取用它的偏 移量。例如: DA3 DB 10H DUP(?) DA4 DW 10H DUP(1) : MOV DA3[SI],BL ADD AX,DA4[BX][DI]
在伪指令语句中:例如: NUM DB 26H DW 10H DUP(O DZ DW NUM DZ2 DD NUM DZ3 DW SAIL 汇编语言程序设计 10
汇编语言程序设计 10 •在伪指令语句中:例如: NUM DB 26H SZ1 DW 10H DUP(0) DZl DW NUM DZ2 DD NUM DZ3 DW SZ1[2]