《微型计算机技术与应用.ppt》由会员分享,可在线阅读,更多相关《微型计算机技术与应用.ppt(26页珍藏版)》请在三一办公上搜索。
1、1,2023/10/13,3.2.3 逻辑运算和移位指令,1.逻辑运算指令,1)AND(Logical and)逻辑“与”指令2)OR(Lgical inclusive or)逻辑“或”指令3)XOR(Logical exclusive or)逻辑“异或”指令4)TEST(Test or non-destructive logical and)测试指令5)NOT(Logical not)逻辑“非”指令,特点:对其操作数按位执行逻辑操作,操作数可以是双字、字或字节。影响条件码:(NOT指令除外)CF0F=0,A未定义,SF ZF PF(运算结果),源操作数可以为立即数、寄存器、存储器 目的操作数
2、可以为寄存器、存储器,不能为立即数 源操作数不是立即数时,两操作数必有一个寄存器,第3章 Pentium的指令系统,2,2023/10/13,AND dest,src;(dest)(dest src)操作:进行“与”运算,两位中有一位为0(或二位都为0),则结果为0,否则为1。,寄存器、存储器,立即数、寄存器、存储器,1)AND逻辑“与”指令(Logical and),“与”指令的用途:(1)清CF,OF,自己“与”自己.操作数不变,CF=0,OF=0 例:AND AL;结果:操作数不变,CF=0,OF=0。(2)使操作数中若干位保持不变,若干位与“1”相与;而若干位置为“0“的场合,若干位与
3、“0”相与。例:若(AL)=43H AND AL,0FH;(AL)=03H,(AL)03不变;;(AL)47=00H,屏蔽高4位。,第3章 Pentium的指令系统,3,2023/10/13,“与”指令应用举例:例1:将英文小写字母ASCII转换成大写。小写英文字母ASCII为:az 61H7AH 大写英文字母ASCII为:AZ 41H5AH 程序:MOV AL,zAND AL,0DFH;(AL)=5AH,1101 1111,DFH,0110 0001,0100 0001,61H,41H,0111 1010,0101 1010,7AH,5AH,第3章 Pentium的指令系统,4,2023/1
4、0/13,OR dset,src;(dset)(dset)(src)操作:进行按位“或”运算 两位操作数中任一位为1(或都为1),则该位(结果)=1,否则为0。,寄存器、存储器,立即数、寄存器、存储器,2)OR逻辑“或”指令(Lgical inclusive or),或指令应用用途:(1)清CF,OF,自己与自己“或”,操作数不变,CF=0,OF=0 例:OR AL;(AL)不变,CF=0(2)使某操作数若干位保持不变,若干位与“0”或;若干位置1,与“1”或。(3)将两个操作数信息组合。若(AL)=03H 用OR指令组合使(AL)=33H=3。OR AL,30H;(AL)=33H,第3章 P
5、entium的指令系统,5,2023/10/13,XOR dset,src;(dset)(dset)(src)操作:对指令的两个操作数进行按位“异或”运算。二位不相同时为1,相同时为0。,寄存器、存储器,立即数、寄存器、存储器,3)XOR逻辑“异或”指令(Logical exclusive or),用途:对某些特定位求反,某些特定位与“1”其余位保持不变,保持不变与“0”。应用举例:例1:将(AL)中的第1、3、5、7位求反 0、2、4、6位保持不变。MOV AL,0FH XOR AL,0AAH,第3章 Pentium的指令系统,6,2023/10/13,例:比较三条(AX)清“0”指令:XO
6、R AX,AX;清AX,清CF。SUB AX,AX;清AX,清CF。MOV AX,0;清AX,不影响标志位。XOR清“0”指令在多字节累加程序中十分有用。,第3章 Pentium的指令系统,7,2023/10/13,TEST dest,src;(dest)(src)操作:二个操作数相与,结果不存,只置条件码。,寄存器、存储器,立即数、寄存器、存储器,4)TEST测试指令(Test or non_destructive logical and),用途:常常用来检测一些条件是否满足,但又不希望改变原有的操作数的情况下,常在此指令后边加一条条件转移指令。例:判断A单元中数据的奇偶性,设:(A)=0A
7、EH 程序:MOV AL,A;(AL)=0AEH TEST AL,01H JZ EVEN;结果=0为偶数转EVEN 奇数处理 EVEN:偶数处理 检测(AL)的最低位是否为0,若为0转EVEN,第3章 Pentium的指令系统,8,2023/10/13,执行操作:对标志位无影响。字节求反:(dest)0FFH-(dest)字求反:(dest)0FFFFH-(dest),5)NOT逻辑“非”指令(Logical not),NOT dest;操作数只一个,对操作数按位求反。,逻辑指令应用小结:(1)AND指令用来对指令的指定位清“0”。(2)OR指令常用来对某些位置1。(3)XOR指令用在程序开头
8、,使某个寄存器清“0”。(4)NOT指令对某个数据取反,+1成补码。(5)TEST指令用来检测指定位为1,还是0。,第3章 Pentium的指令系统,9,2023/10/13,逻辑运算指令,10,2023/10/13,1)非循环移位(算术/逻辑移位指令)SAL,SAR,SHL,SHR。2)循环移位 ROL,ROR,RCL,RCR。3)双精度移位 SHLD,SHRD。,将操作数移动一位或多位,分别具有左移或右移操作,将操作数从一端移出的位返回到另一端形成循环,分成不带进位和带进位,分别具有左移或右移操作,2.移位指令,快速数据移位,三个操作数,实现双左移,双右移,第3章 Pentium的指令系统
9、,11,2023/10/13,SHL dest,cnt;逻辑左移指令,B/W/DW SAL dest,cnt;算术左移指令,B/W/DW,dest,执行操作:相当于无符号数的2功能。,第3章 Pentium的指令系统,12,2023/10/13,cnt:表示移位次数 cnt31,可写在指令中,也可用CL给出。cnt31,用CL存放移位次数,不能是其他寄存器。如:SAL AX,1 MOV CL,4 SAL AX,CL SAL EAX,CL,第3章 Pentium的指令系统,13,2023/10/13,SHR dest,cnt;逻辑右移指令,B/W,dest,执行操作:相当于无符号数的2功能。,第
10、3章 Pentium的指令系统,14,2023/10/13,SAR dest,cnt;算术右移指令,B/W,dest,执行操作:相当带符号数2功能,SAR对负数向下舍入 IDIV指令对负数向上舍入。,第3章 Pentium的指令系统,15,2023/10/13,用SAR指令与用IDIV指令做除法的区别:用SAR指令做除法(对负数向下舍入):MOV AX,81H;(AX)=-127SAR AX,1;(AX)=-64用IDIV指令做除法(IDIV指令对负数向上舍入):MOV AX,81H;(AX)=-127MOV CL,2IDIV CL;(AL)=-63,(AH)=-1,10000001,1100
11、0000,第3章 Pentium的指令系统,16,2023/10/13,ROL dest,cnt;不含CF循环左移指令,dest,移动8次后操作数还原。,第3章 Pentium的指令系统,17,2023/10/13,ROR dest,cnt;不含CF循环右移指令,右移8次后操作数还原。,第3章 Pentium的指令系统,18,2023/10/13,RCL dest,cnt;含CF循环左移指令,左移9次后操作数还原,dest,第3章 Pentium的指令系统,19,2023/10/13,RCR dest,cnt;含CF循环右移指令,右移9次后操作数还原,dest,第3章 Pentium的指令系统
12、,20,2023/10/13,循环移位指令(Rotate)与移位指令(Shift)不同点:循环移位指令移位后,操作数中原来各数位的信息不会丢失,这是移动了位置,必要时可以恢复。循环移位指令可以对操作数进行测试。例:测试(AL)5=?0 MOV CL,3 ROL AL,CL JNC ZEROZERO:,AL,21,2023/10/13,利用带进位循环移位指令将两个寄存器或存储器 单元组合起来一起移位。例:将DX、AX组合起来构成32位寄存器向左移一位。如下图所示:,程序:SHL AX,1 RCL DX,1,32位寄存器向左移一位,22,2023/10/13,思 考:,把AL最低位送BL最低位,保
13、持AL不变 AH.AL分别存放着非压缩BCD码的两位,将它们合并成为一个压缩BCD码存AL,10100011,01111100,01111101,第3章 Pentium的指令系统,23,2023/10/13,位传送,;把AL最低位送BL最低位,保持AL不变ROR BL,1ROR AL,1RCL BL,1ROL AL,1,AL之D0,第3章 Pentium的指令系统,24,2023/10/13,BCD码合并,;AH.AL分别存放着非压缩BCD码的两位;将它们合并成为一个压缩BCD码存ALAND AX,0F0FH;保证高4位为0MOV CL,4ROL AH,CL;也可以用SHL AH,CLADD AL,AH;也可以用OR AL,AH,第3章 Pentium的指令系统,25,2023/10/13,双精度移位,SHLD dest,src,cnt,SHRD dest,src,cnt,寄存器、存储器,寄存器,立即数,CL,MOV AX,2A80HMOV BX,9A78HSHLD AX,BX,8;AX809AH,BX9A78H,CF0SHRD BX,AX,1;AX809AH,BX4D3CH,CF0,OF1,第3章 Pentium的指令系统,Thank You!,博学 审问 慎思 明辨 笃行,
链接地址:https://www.31ppt.com/p-6284339.html