4、 MOVAL,33H MOVBL,84H MOVCL,0FFH SUBBL,AL JGAA NOTCLAA: HLT运行结果:AL=______;BL=_______;CL=_______END*标号和变量名统称为标识符,它们都用来表示本语句的符号地址。标识符的组成规则如下:字符个数为:1~31个;第一个字符必须是:字母、?、@或_;从第二个字符开始,可以是:数字、字母、?、@或_;不能使用系统专用保留字,保留字主要有:寄存器名(如:AX,CS)指令助记符(如:MOV,ADD)伪指令(如:SEGMENT,DB)表达式中的运算符(如:GE,EQ)属性操作符(如:PTR,FAR)*§2.4逻辑运算与移位指令2.4.1逻辑运算指令(P79,全部要求掌握)逻辑运算指令包括AND(与)、OR(或)、NOT(非)、XOR(异或)指令和TEST(测试)指令。一、与运算指令AND指令格式:ANDDEST,SRC即:DST←DST∧SRC功能:将源操作数和目的操作数中同为一个字或一个字节的相应各位按位相与,结果放在目的操作数中。逻辑与运算经常用来屏蔽某些指定位(即置0)或保留某些位。例如:若(AL),用AND指令将高4位屏蔽,保留低4位。指令序列如下:MOVALANDAL,0FH;运行后(AL)*二、或运算指令OR指令格式:ORDST,SRC执行的操作:DST←DST∨SRC功能:将源操作数和目的操作数中同为一个字或一个字节的相应各位按位相或,结果放在目的操作数中。此运算经常用来对某操作数的指定位“置1”,保留其它位的值。例:若(AL)=B,试用OR指令将最高位置位,其余位不变。指令序列如下:MOVALBORALB;运行后(AL)B*三、异或运算指令XOR指令格式:XORDST,SRC执行的操作:DST←DST?SRC功能:将源操作数和目的操作数中同为一个字或一个字节的相应各位按位相异或,结果放在目的操作数中。此运算可以使某些操作数的若干位保持不变,另外若干位取反。例1:使(BL)的低4位保持不变,高4位取反。可用XORBL,0F0H来实现。例2:利用XOR使操作数清0。XORAX,AX;(AX)=0例3:用XOR指令判断两个不同的操作数是否相等。XORAX,BX若ZF=1则说明(AX)=(BX)。*四、非运算指令NOT指令格式:NOTOPR功能:将字或字节操作数中各位求反(即0变1,1变0),操作数可为寄存器或存储器。例:(AL)=NOTAL ;(AL)=。五、测试指令TEST指令格式:TESTOPR1,OPR2执行的操作:(OPR1)∧(OPR2)功能:同AND,区别是不将结果送目的操作数,只影响标志位。例:测试AL中的D3位是否为0。TESTAL*SHL(shiftlogicalleft) 逻辑左移SAL(shiftarithmeticleft) 算术左移SHR(shiftlogicalright) 逻辑右移SAR(shiftarithmeticright) 算术右移ROL(rotateleft)