3表达式 表达式是由运算符和操作数组成的序列,汇编语言中的表达式 在汇编时计算,在运行时已经是常数了。在汇编时产生一个确定的 值。这个值可以仅表示一个常量,也可以表示一个存储单元的偏移 地址,相应的表达式称为常量表达式和地址表达式。表达式可出现 在常数的地方。 (1)常数 汇编语言语句中出现的常数有5种: ①二进制数:后面加B,如0100000B ②八进制数:后面加字母Q或O,如202Q或2020。 ③十进制数:后跟D或不跟字母,如85D或85。 ④十六进制数:在后面加H,若是字母开始,前面要加0,以示 和变量的区别。 ⑤字符和字符串字符串用单引号)或双引号(“)引起来
3 表达式 表达式是由运算符和操作数组成的序列,汇编语言中的表达式 在汇编时计算,在运行时已经是常数了。在汇编时产生一个确定的 值。这个值可以仅表示一个常量,也可以表示一个存储单元的偏移 地址,相应的表达式称为常量表达式和地址表达式。表达式可出现 在常数的地方。 (1)常数 汇编语言语句中出现的常数有5种: ① 二进制数:后面加B,如01000001B。 ② 八进制数:后面加字母Q或O,如202Q或202O。 ③ 十进制数:后跟D或不跟字母,如85D或85。 ④ 十六进制数:在后面加H,若是字母开始,前面要加0,以示 和变量的区别。 ⑤字符和字符串字符串用单引号(‘)或双引号(“)引起来
(2)常量操作数 常量操作数是一个数值操作数,一般是常量或者是表示常量的 标识符。可以为数字常量操作数或字符串常量操作数。前者可采用 二进制、八进制、十进制或十六进制等计数形式;而后者则为相应 字符的ASCI码。 (3)存储器操作数 存储器操作数是一个地址操作数,代表一个存储单元的地址, 通常以标识符的形式出现。 存储器操作数可以分为变量及标号两种类型,如果存储器操作 数所代表的是某个数据在数据段、附加段或堆栈段中的地址,那么 这个存储器操作数就称为变量;如果存储器操作数所代表的是某条 指令代码在码段中的地址,那么这个存储器操作数称为标号。变量 所对应的存储单元内容在程序的运行过程中是可以改变的,标号通 常作为转移指令或调用指令的目标操作数,在程序运行过程中不能 改变
(2)常量操作数 常量操作数是一个数值操作数,一般是常量或者是表示常量的 标识符。可以为数字常量操作数或字符串常量操作数。前者可采用 二进制、八进制、十进制或十六进制等计数形式;而后者则为相应 字符的ASCII码。 (3)存储器操作数 存储器操作数是一个地址操作数,代表一个存储单元的地址, 通常以标识符的形式出现。 存储器操作数可以分为变量及标号两种类型,如果存储器操作 数所代表的是某个数据在数据段、附加段或堆栈段中的地址,那么 这个存储器操作数就称为变量;如果存储器操作数所代表的是某条 指令代码在码段中的地址,那么这个存储器操作数称为标号。变量 所对应的存储单元内容在程序的运行过程中是可以改变的,标号通 常作为转移指令或调用指令的目标操作数,在程序运行过程中不能 改变
存储器操作数有三个方面的属性: (1)段地址:即存储器操作数所对应的存储单元所在段的段地 址 (2)偏移地址:即存储器操作数所对应的存储单元在所在段内 的偏移地址; (3)类型:变量的类型是相应存储单元所存放的数据项的字节 数;而标号的类型则反映了相应存储单元地址在作为转移或调 用指令的目标操作数时的寻址方式,可有两种情况,即NEAR (-1)和FAR(一2)。 (4)常量表达式 由常量操作数及运算符构成,在汇编时产生一个常量。 如PORT、VAL+1、 OFFSET SUM、 SEG SUM、TYPE CYCLE等
存储器操作数有三个方面的属性: (1) 段地址:即存储器操作数所对应的存储单元所在段的段地 址; (2) 偏移地址:即存储器操作数所对应的存储单元在所在段内 的偏移地址; (3) 类型:变量的类型是相应存储单元所存放的数据项的字节 数;而标号的类型则反映了相应存储单元地址在作为转移或调 用指令的目标操作数时的寻址方式,可有两种情况,即NEAR ( -1 )和FAR( -2 )。 (4)常量表达式 由常量操作数及运算符构成,在汇编时产生一个常量。 如 PORT、 VAL + 1、 OFFSET SUM 、 SEG SUM 、 TYPE CYCLE等
(5)地址表达式 由存储器操作数与运算符构成,必须有明确的物理意义 例如SUM+2、 CYCLE-5 表达式SUM十2、 CYCLE-5的值仍然是一个存储器操作数, 该存储器操作数的段地址与类型属性分别与存储器操作数SUM及 CYCLE相同,但偏移地址分别比SUM及 CYCLE大2或小5。表达式 是在汇编时计算的,而变量单元的内容在程序的运行过程中可以改 变
(5)地址表达式 由存储器操作数与运算符构成,必须有明确的物理意义。 例如 SUM+2、CYCLE-5 表达式SUM+2、CYCLE-5的值仍然是一个存储器操作数, 该存储器操作数的段地址与类型属性分别与存储器操作数SUM及 CYCLE相同,但偏移地址分别比SUM及CYCLE大2或小5。表达式 是在汇编时计算的,而变量单元的内容在程序的运行过程中可以改 变
412汇编语言的运算符(P128-136) 算术运算符、逻辑运算符和关系运算符 运算符有: 算术运算:十、一、×、÷、mod、SHL、SHR 逻辑运算:and、or、xor、not 关系运算: EQNNE/LT/GT/LE/GE(相等不等/小于/大于小于 或等于/大于或等于),结果为真,则返回0 FFFFH,假则为0 2.数值返回运算符SEG、 OFFSET、TYPE、SLE和 LENGTH (P131) 加在变量或标号前,返回运算对象的某个参数值(如:段地 址值、偏移地址值、类型属性、变量包含的单元数等)
4.1.2 汇编语言的运算符(P128--136) 1.算术运算符、逻辑运算符和关系运算符 运算符有: 算术运算:+、-、×、÷、mod、SHL、SHR 逻辑运算:and、or、xor、not 关系运算:EQ/NE/LT/GT/LE/GE(相等/不等/小于/大于/小于 或等于/大于或等于),结果为真,则返回0FFFFH,假则为0。 2. 数值返回运算符SEG、OFFSET、TYPE、SIZE和LENGTH (P131) 加在变量或标号前,返回运算对象的某个参数值(如:段地 址值、偏移地址值、类型属性、变量包含的单元数等)