资源描述:
《汇编语言2-4逻辑移位指令》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、数据传送类;二、算术运算类;三、位操作指令(逻辑运算和移位类);四、串操作类;五、控制转移类;六、处理器控制类;8086指令系统要求:全面而准确地理解每条指令的功能和应用重点掌握以下指令:AND、XOR、TEST、SHL、SHR、RCL、RCR8086指令系统位操作指令,它们都是按位进行操作的包含逻辑运算类指令和移位指令。位操作类指令以二进制位为基本单位进行数据的操作;这是一类常用的指令,都应该特别掌握注意这些指令对标志位的影响逻辑运算和移位类一、逻辑运算指令AND/OR/XOR/NOT/TEST二、移位指令S
2、HL/SHR/SAL/SAR三、循环移位指令ROL/ROR/RCL/RCR一、逻辑运算指令ANDNOTXORORTEST1、逻辑与指令AND功能:对两个操作数执行按位的逻辑与运算,结果送到目的操作数ANDreg,imm/reg/mem;reg←reg∧imm/reg/memANDmem,imm/reg;mem←mem∧imm/reg说明:(1)按位的逻辑与运算;(2)操作数不能同时为存储器操作数;(3)注意对标志位的影响P44;思考:(1)某一个操作数自己和自己相与?(2)AND指令主要用在什么场合?屏蔽某些位P4
3、4的例3-182、逻辑或指令OR功能:对两个操作数执行按位逻辑或运算,结果送到目的操作数ORreg,imm/reg/mem;reg←reg∨imm/reg/memORmem,imm/reg;mem←mem∨imm/reg说明:(1)按位逻辑或运算;(2)OR指令对操作数的限制和对标志位的影响;思考:(1)某一个操作数自己和自己相逻辑或?(2)OR指令主要用在什么场合?置某些位3、逻辑异或指令XOR功能:对两个操作数执行按位逻辑异或运算,结果送到目的操作数XORreg,imm/reg/mem;reg←reg⊕imm/
4、reg/memXORmem,imm/reg;mem←mem⊕imm/reg说明:(1)只有相“异或”的两位不相同,结果才是1;(2)XOR指令对操作数的限制和对标志位的影响同AND指令;思考:(1)某一个操作数自己和自己相异或?(2)XOR指令主要用在什么场合?寄存器清0求反某些位逻辑非指令NOT功能:对一个操作数执行按位逻辑非运算NOTreg/mem;reg/mem←~reg/mem说明:(1)按位取反,原来是“0”的位变为“1”,原来是“1”的位变为“0”;(2)NOT指令是一个单操作数指令;(3)NOT指令不
5、影响标志位;小结逻辑指令:主要应用:对一个操作数的某些位进行置位(变为1)或复位(变为0)。源操作数往往是立即数。实际编程时,需要正确地选取立即数。例题:逻辑运算moval,45h;逻辑与al=01handal,31h;CF=OF=0,SF=0、ZF=0、PF=0moval,45h;逻辑或al=75horal,31h;CF=OF=0,SF=0、ZF=0、PF=0moval,45h;逻辑异或al=74hxoral,31h;CF=OF=0,SF=0、ZF=0、PF=1moval,45h;逻辑非al=0bahnotal;
6、标志不变例题:逻辑指令应用;AND指令可用于复位某些位(同0相与),不影响其他位:将BL中D3和D0位清0,其他位不变andbl,11110110B;OR指令可用于置位某些位(同1相或),不影响其他位:将BL中D3和D0位置1,其他位不变orbl,00001001B;XOR指令可用于求反某些位(同1相异或),不影响其他位:将BL中D3和D0位求反,其他不变xorbl,00001001B测试指令TEST功能:对两个操作数执行逻辑与运算,结果不回送到目的操作数,但要影响标志位,标志位影响同AND指令。说明:(1)本条指
7、令通常是用于检测一些条件是否满足,但又不希望改变原有的操作数的情况下。(2)本条指令通常在其后紧跟一条条件转移指令。例:测试为0或1若要检测AL中的最低位是否为1,若为1则转移。testal,01h;测试AL的最低位D0jnzthere;标志ZF=0,即D0=1;则程序转移到there...;否则ZF=1,即D0=0,顺序执行there:...TEST思考:(1)以上检测的是最低位,若要检测AX的最高位是否为1,若为1则转移,如何编程?二、移位指令SHLSALSARSHR其中两条左移指令对应同一条机器指令,所以,从
8、机器指令的角度来说,移位指令只有三条。四条指令分成逻辑移位和算术移位,分别具有左移或右移操作,将操作数移动一位或多位。移位指令(shift)SHLreg/mem,1/CL;逻辑左移,最高位进入CF,最低位补0SHRreg/mem,1/CL;逻辑右移,最低位进入CF,最高位补0SALreg/mem,1/CL;算术左移,最高位进入CF,最低位补0SARreg/m