413数据项与表达式 1)算术运算符——+、一、*、/,MOD >用于数字表达式,例: MOV AX. 4*1024 汇编后的形式为: MOV AX 4096 用于地址表达式,例: LEA SI TAB+3 若TAB的偏移地址为1000H,则汇编后的形式为 LEA SI, [1003HI 微机原理及应用——第4章汇编语言
微机原理及应用——第4章 汇编语言 21 4.1.3 数据项与表达式 ➢用于数字表达式,例: MOV AX,4*1024 汇编后的形式为: MOV AX,4096 ➢用于地址表达式,例: LEA SI,TAB+3 若TAB的偏移地址为1000H,则汇编后的形式为: LEA SI,[1003H] 1)算术运算符—— +、-、*、/,MOD
413数据项与表达式 2)逻辑运算符—AND、OR、XOR、NOT 逻辑运算符只能用于数字表达式中。 例:MVCL,36HAND0FH 经汇编后: MOV CL,06H 注意,不要把逻辑运算符与逻辑运算指令混淆: v ]: AND AX, 3FCOH AND OFFOOH 汇编后源操作数被翻译为:3F00H,所以上述指令与 AND AX,3F0OH等价。 微机原理及应用——第4章汇编语言
微机原理及应用——第4章 汇编语言 22 4.1.3 数据项与表达式 逻辑运算符只能用于数字表达式中。 例:MOV CL,36H AND 0FH 经汇编后:MOV CL,06H 注意,不要把逻辑运算符与逻辑运算指令混淆: 例:AND AX, 3FC0H AND 0FF00H 汇编后源操作数被翻译为:3F00H,所以上述指令与 AND AX, 3F00H等价。 2)逻辑运算符—— AND、OR、XOR、NOT
413数据项与表达式 3)关系运算符—EQ、NE、LT、GT、LE、GE 关系运算的结果是一个逻辑值:真或假 关系为真,结果为全1 关系为假,结果为全0 例: MOV BX, PORT GT300H 若PORT的值大于300J,则汇编后为: MOV BX. OFFFFH 否则汇编后为: MOV BX. 0 微机原理及应用——第4章汇编语言 23
微机原理及应用——第4章 汇编语言 23 4.1.3 数据项与表达式 ➢ 关系运算的结果是一个逻辑值:真或假 关系为真,结果为全1 关系为假,结果为全0 例:MOV BX,PORT GT 300H 若PORT的值大于300H,则汇编后为: MOV BX,0FFFFH 否则汇编后为: MOV BX,0 3)关系运算符——EQ、NE、LT、GT、LE、GE
413数据项与表达式 4)取地址运算符—SEG、 OFFSET sEG:取变量标号的段地址 OFFSET:取变量标号的偏移地址 例 VAR DB 12H MOV BX, OFFSET VAR;取变量ⅥAR的偏移地址 MOV AX, SEG VAR;取变量ⅥAR的段地址 注意,以下指令的异同: MOV BX OFFSET VAR LEA BX VAR √ OFFSET只能取静态的偏移地址; LEA指令即可取静态的偏移地址,也可取动态的偏移地址 微机原理及应用——第4章汇编语言
微机原理及应用——第4章 汇编语言 24 4.1.3 数据项与表达式 SEG:取变量/标号的段地址 OFFSET:取变量/标号的偏移地址 例:VAR DB 12H …… MOV BX,OFFSET VAR ;取变量VAR的偏移地址 MOV AX,SEG VAR ;取变量VAR的段地址 注意,以下指令的异同: MOV BX, OFFSET VAR LEA BX, VAR ✓OFFSET只能取静态的偏移地址; ✓LEA指令即可取静态的偏移地址,也可取动态的偏移地址。 4)取地址运算符——SEG、OFFSET
413数据项与表达式 5)取值运算符—TYPE、 LENGTH、SIZE TYPE 取变量的类型(1,2,4) LENGTH取所定义变量的长度 (即变量中元素的个数) SIZE 取所定义存储区的字节数 (=TYPE料 ENGTH) 例: VAR DW1,2,3,4,5 则 TYPE VAR=2 LENGTH VAR E 5 SIZE VAR E10 微机原理及应用——第4章汇编语言 25
微机原理及应用——第4章 汇编语言 25 4.1.3 数据项与表达式 ◼TYPE 取变量的类型(1,2,4) ◼LENGTH 取所定义变量的长度 (即变量中元素的个数) ◼SIZE 取所定义存储区的字节数 (=TYPE*LENGTH) 例:VAR DW 1,2,3,4,5 则 TYPE VAR = 2 LENGTH VAR = 5 SIZE VAR = 10 5)取值运算符——TYPE、LENGTH、SIZE