表达式与运算符 表达式 ·算术运算符 ·逻辑远算符 关系运算符 分析操作符 属性操作符 ·运算符优先级 表达式是操作数常见的形式,它是由常数、变量、标号通过 操作运算符连接而成的。任一表达式的值是在程序汇编过程中 进行计算确定的,不是在程序运行时求得的。 (1)算术运算符:+,-,×,MOD,S皿R(右移),S(左移) 其中:SHRSⅢ表示将常量右移或左移运算符,右边所规定的 次数(正数),空出的数位均补0 汇编语言程序设计 16
汇编语言程序设计 16 二、表达式与运算符 • 表达式 • 算术运算符 • 逻辑运算符 • 关系运算符 • 分析操作符 • 属性操作符 • 运算符优先级 表达式是操作数常见的形式,它是由常数、变量、标号通过 操作运算符连接而成的。任一表达式的值是在程序汇编过程中 进行计算确定的,不是在程序运行时求得的。 (1)算术运算符:+,-,×, /,MOD,SHR (右移),SHL(左移) 其中:SHR,SHL表示将常量右移或左移运算符,右边所规定的 次数(正数),空出的数位均补0
如: MOV AL,ASHR3(立即数) 若A=111111llB.则 表达式:ASHR3,结果为00011111BAL (2)逕辑运算符 按位操作运箅符:AND(与),OR(或),XOR(异或),NOT(非) 注:运算法则同对应的指令运算 参加运算的必须是数字.结果是数字,只用于数值表达式中 如: AND DX,789 AH AND OFF(立即数) (3)关系运算符:EQ,NE,LT,GT,LE,GE 参加运算的两个对象必须是数字,或同一段中两个单元地址(EA) 结果:真值为: OFFFFH(全“1),假值为0(全“0”) 如:M0VBx,3LT5 (BX=OFFFFH 立即数 汇编语言程序设计 17
汇编语言程序设计 17 如:MOV AL,A SHR 3 (立即数) 若A=11111111B,则: 表达式:A SHR 3, 结果为00011111B AL (2)逻辑运算符 按位操作运算符:AND(与),OR(或),XOR(异或),NOT(非) 注:运算法则同对应的指令运算 参加运算的必须是数字,结果是数字,只用于数值表达式中。 如:AND DX,789AH AND 0FH(立即数) (3)关系运算符:EQ , NE , LT , GT , LE , GE 参加运算的两个对象必须是数字,或同一段中两个单元地址(EA) 结果:真值为:0FFFFH(全“1”),假值为0(全“0”) 如:MOV BX,3 LT 5 ;(BX)=0FFFFH 立即数
(4)分析操作待 . TYPE 格式:TYPE变量或标号 功能:若是变量:回送该变量以字节数表示的类型:DB为1 DW为2,DD为4,DQ为8,D为10。 若是标号:回送代表该标号类型的数值:NAR为0 FFFFH, FAR为0 FFFEH。 LENGTH:取存贮单元个数算符 SIZE:取存贮区大小算符 SEG:取段首址算符 · OFFSE:取偏移地址算符 汇编语言程序设计 18
汇编语言程序设计 18 (4)分析操作符 •TYPE 格式:TYPE变量或标号 功能:若是变量:回送该变量以字节数表示的类型:DB为1, DW为2,DD为4,DQ为8,DT为10。 若是标号:回送代表该标号类型的数值:NEAR为0FFFFH, FAR为0FFFEH。 •LENGTH:取存贮单元个数算符 •SIZE:取存贮区大小算符 •SEG:取段首址算符 •OFFSET:取偏移地址算符
例:M0VB, SEG OPE;将OPE所在段的段首址送BX。 例子 DAT SEGMENT ADW50,100,-70H B DB'ABCDEF, 5 DUP(O C DWC-B ;变量C中的内容为以B为首址的数据存贮区 所占的字节数 DAT ENDS MOV AX,SEGB;DAT→AX,将B所在段的段首址AX MoⅴBX, OFFSET E;6口BX,将B偏移地址是口BX MOV CX, TYPE B;回送B变量的类型表示的字节数;即lCⅩ MOV AX.A+2 (A+2)=100→AX,以A为首址再向下位移2个 字节的内容匚AX 汇编语言程序设计
汇编语言程序设计 19 例:MOV BX,SEG OPE ;将OPE所在段的段首址送BX。 例子: DAT SEGMENT A DW 50,100,-70H B DB ‘ABCDEF’,5 DUP(0) C DW C-B ;变量C中的内容为以B为首址的数据存贮区 所占的字节数 DAT ENDS : : MOV AX,SEG B ;DAT AX,将B所在段的段首址 AX MOV BX,OFFSET B ;6 BX,将B偏移地址是 BX MOV CX,TYPE B ;回送B变量的类型表示的字节数;即1 CX MOV AX,A+2 ;(A+2)=100 AX,以A为首址再向下位移2个 : 字节的内容 AX