注意: 算术运算符总可以用于数字操作,其结果也是 数字的。当应用于存储器操作数时,只有+,运 算符有意义; ·逻辑运算符的操作数也必须是数字,存储器操 作数不能进行逻辑运算; 关系运算符连接的两个操作数,必须都是数字 的或是在同一段内的存储器地址
11 注意: • 算术运算符总可以用于数字操作,其结果也是 数字的。当应用于存储器操作数时,只有+, -运 算符有意义; • 逻辑运算符的操作数也必须是数字,存储器操 作数不能进行逻辑运算; • 关系运算符连接的两个操作数,必须都是数字 的或是在同一段内的存储器地址
2、取值运算符 1)S运算符 BLOCK“H S:当前地址偏移量的值 ELLO BLOCK DE“ HELLO! NUM EQU S-BLOCK: NUM为6 12
12 2、取值运算符 1) $运算符 $:当前地址偏移量的值 BLOCK DB ‘HELLO!’ NUM EQU $-BLOCK ‘H’ ‘E’ ‘L’ ‘L’ ‘O’ ‘!’ BLOCK $ ;NUM为 6
2)SEG和 OFFSET SEG:求标号或变量的段地址 OFFSET:求标号或变量的偏移地址 例如,定义: SLOT DW25 则: MOV AX,SLOT; 从SLOT地址中取一个字送入AX MoV AX, SEG SLOT 将SLOT的段地址送入AX MOV AX, OFFSET SLOT 将SLOT的段内偏移地址送AX 13
13 2) SEG 和OFFSET SEG: 求标号或变量的段地址 OFFSET: 求标号或变量的偏移地址 例如,定义: SLOT DW 25 则:MOV AX,SLOT; 从SLOT地址中取一个字送入AX MOV AX,SEG SLOT; 将SLOT的段地址送入AX MOV AX,OFFSET SLOT; 将SLOT的段内偏移地址送AX
3)TYPE返回标号或存储器操作数的类型值 对存储器操作数:表示占用的字节数 对标号:表示过程或指令地址的调用类型 表3-1存储器操作数的类型属性及返回值 字节字双字 NEAR FAR 24 2
14 3) TYPE 返回标号或存储器操作数的类型值 对存储器操作数:表示占用的字节数 对标号:表示过程或指令地址的调用类型 表3-1 存储器操作数的类型属性及返回值 字节 字 双字 NEAR FAR 1 2 4 -1 -2
4) LENGTH和SIZE(对用DUP定义数据的情况下) LENGTH 返回一个与存储器操作数相联系的甚本数据个数, SIZE 返回一个为存值器操作数分配的字艺数 关系:SIZE= LENGTH×TYPE 例如:若MULT- WORD DW50DUP(0) 则 LENGTH MULT- WORD=50 SIZE MULT-WORD=100 TYPE MULT-WORD=2 15
15 4) LENGTH 和 SIZE(对用DUP定义数据的情况下) LENGTH: 返回一个与存储器操作数相联系的基本数据个数, SIZE: 返回一个为存储器操作数分配的字节数 关系:SIZE=LENGTH × TYPE 例如:若 MULT-WORD DW 50 DUP(0) 则 LENGTH MULT-WORD=50 SIZE MULT-WORD=100 TYPE MULT-WORD=2