在数据定义伪指令语句的操作数部分中,所示 的表达式就是给定义的变量预置的初值,它们有如 下几种情况: ①数值表达式:例如: 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]