4.1.2汇编语言源程序的语句类型和语句格式 1.语句类型 8086宏汇编MASM使用的语句可以分成3种类型: 指令语句:这类指令能够产生目标代码,是CPU可以执行 的能够完成特定功能的语句,主要由机器指令组成。在汇编时 条指令语句被翻译成对应的机器码,对应着特定的操作。 伪指令语句:伪指令语句是为汇编程序和连接程序提供 些必要控制的管理性语句,它不产生目标代码,仅仅在汇编过 程中告诉汇编程序应如何汇编,并完成相应的伪操作。 宏指令语句:宏指令语句是由编程者按照一定的规则来定 义的一种较“宏大”的指令,可包括多条指令或伪指令
4.1.2 汇编语言源程序的语句类型和语句格式 1.语句类型 8086宏汇编MASM使用的语句可以分成3种类型: Ø 指令语句:这类指令能够产生目标代码,是CPU可以执行 的能够完成特定功能的语句,主要由机器指令组成。在汇编时 一条指令语句被翻译成对应的机器码,对应着特定的操作。 Ø 伪指令语句:伪指令语句是为汇编程序和连接程序提供一 些必要控制的管理性语句,它不产生目标代码,仅仅在汇编过 程中告诉汇编程序应如何汇编,并完成相应的伪操作。 Ø 宏指令语句:宏指令语句是由编程者按照一定的规则来定 义的一种较“宏大”的指令,可包括多条指令或伪指令
2.语句格式 般情况下,汇编语言的语句可以由以下几部分组成: 名字]操作码[操作数][;注释 名字是一个符号,它表示本条语句的符号地址。一般 来说,名字可以是标号和变量,统称为标识符。 注意:标号和变量都具备3种属性—段属性、偏移属性及 类型属性。 操作码可以是机器指令、伪指令和宏指令的助记符。 操作数字段是操作码的操作对象。操作码在完成相应 的操作时要求有一系列的操作数。当有两个或两个以上的 操作数时,各操作数之间用逗号隔开 >注释字段是以“;”开头的说明部分,可以用英文或 者中文书写。注释字段是语句的非执行部分
2.语句格式 一般情况下,汇编语言的语句可以由以下几部分组成: [名字] 操作码 [操作数] [;注释] Ø 名字是一个符号,它表示本条语句的符号地址。一般 来说,名字可以是标号和变量,统称为标识符。 注意:标号和变量都具备3种属性——段属性、偏移属性及 类型属性。 Ø 操作码可以是机器指令、伪指令和宏指令的助记符。 Ø 操作数字段是操作码的操作对象。操作码在完成相应 的操作时要求有一系列的操作数。当有两个或两个以上的 操作数时,各操作数之间用逗号隔开。 Ø 注释字段是以“ ; ”开头的说明部分,可以用英文或 者中文书写。注释字段是语句的非执行部分
4. IDSEG, SEGMENT DATA1 DW OF865H 符 DATA2 DW 360CH DSEG ENDS ESEG SEGMENT SUM DW 2 DUP(? 名字 可以 ESEG ENDS CSEG SEGMENT asSUME CS: CSEG, DS: DSEG, ES: ESEG 2 START: MOV AX, DSEG MOV DS, AX MOV AX, ESEG MOV ES, AX LEA SI, SUM 分 析运 MOV AX, DTTAI ADD ES: SI, AX HLT CSEG ENDS END START
4.1.3 8086汇编语言中的标识符、表达式和运算符 1、 标识符(标号,变量,名字) 汇编语言每条语句的第一个字段是它的名字字段,名字 可以是标号或变量,这两者又称为标识符。 重点是要掌握其组成规则和它的3个属性。 2、 表达式和运算符 在表达式中,运算符充当着重要的角色。 8086宏汇编有算术运算符、逻辑运算符、关系运算符、分 析运算符和综合运算符共5种。 下面分别讨论5种运算符的作用: DSEG SEGMENT DATA1 DW 0F865H DATA2 DW 360CH DSEG ENDS ESEG SEGMENT SUM DW 2 DUP(?) ESEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG,ES:ESEG START:MOV AX,DSEG MOV DS,AX MOV AX,ESEG MOV ES,AX LEA SI,SUM MOV AX,DTTA1 ADD ES:[SI],AX HLT CSEG ENDS END START
(1)算术运算符用于完成算术运算,有+ (加法) (减法)、×(乘法) (除法) MOD(求余)、SHL(左移)、SHR(右移)共7 种运算 (2)逻辑运算符的作用是对其操作数进行按 位操作。逻辑运算符有AND(与)、OR(或)、XOR (异或)和NOT(非)。 (3)关系运算符的运算对象是两个性质相同 的项目。其结果为:关系成立或不成立。有EQ(相 等)、NE(不相等)、LT(小于)、GT(大于) E(小于或等于)、GE(大于或等于)共6种
(1)算术运算符用于完成算术运算,有+ (加法)、-(减法)、×(乘法)、/(除法)、 MOD(求余)、SHL(左移)、SHR(右移)共7 种运算。 (2)逻辑运算符的作用是对其操作数进行按 位操作。逻辑运算符有AND(与)、OR(或)、XOR (异或)和NOT(非)。 (3)关系运算符的运算对象是两个性质相同 的项目。其结果为:关系成立或不成立。有EQ(相 等)、NE(不相等)、LT(小于)、GT(大于)、 LE(小于或等于)、GE(大于或等于)共6种
(4)分析运算符是对存储器地址进行运算的 有5个:SEG(求段基值)、 OFFSET(求偏移量) TYPE(求变量类型)、 LENGTH(求变量长度)和 SIZE(求字节数) (5)综合运算符可以用来建立和临时改变变量 或标号的类型以及存储器操作数的存储单元类型, 而忽略当前的属性,所以又称为属性修改运算符。 有6个综合运算符:PTR、段属性前缀、 SHORT THIS、HIGH和LOW
(4)分析运算符是对存储器地址进行运算的。 有5个:SEG(求段基值)、OFFSET(求偏移量)、 TYPE(求变量类型)、LENGTH(求变量长度)和 SIZE(求字节数)。 (5)综合运算符可以用来建立和临时改变变量 或标号的类型以及存储器操作数的存储单元类型, 而忽略当前的属性,所以又称为属性修改运算符。 有6个综合运算符:PTR、段属性前缀、SHORT、 THIS、HIGH 和LOW