资源描述:
《微型计算机技术与应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、3.2.3逻辑运算和移位指令1.逻辑运算指令1)AND(Logicaland)逻辑“与”指令2)OR(Lgicalinclusiveor)逻辑“或”指令3)XOR(Logicalexclusiveor)逻辑“异或”指令4)TEST(Testornon-destructivelogicaland)测试指令5)NOT(Logicalnot)逻辑“非”指令特点:对其操作数按位执行逻辑操作,操作数可以是双字、字或字节。影响条件码:(NOT指令除外)CF=0F=0,A未定义,SFZFPF(运算结果)↕↕↕源操作数可以为立即数、寄存器、存储器目的操作数可以为寄存器、存储器,不能为立即数源操作数不是立
2、即数时,两操作数必有一个寄存器第3章Pentium的指令系统2021/10/61ANDdest,src;(dest)(dest∧src)操作:进行“与”运算,两位中有一位为0(或二位都为0),则结果为0,否则为1。寄存器、存储器立即数、寄存器、存储器1)AND逻辑“与”指令(Logicaland)“与”指令的用途:(1)清CF,OF,自己“与”自己.操作数不变,CF=0,OF=0例:ANDAL;结果:操作数不变,CF=0,OF=0。(2)使操作数中若干位保持不变,若干位与“1”相与;而若干位置为“0“的场合,若干位与“0”相与。例:若(AL)=43HANDAL,0FH;(AL)=03H
3、,(AL)0~3不变;;(AL)4~7=00H,屏蔽高4位。第3章Pentium的指令系统2021/10/62“与”指令应用举例:例1:将英文小写字母ASCII转换成大写。小写英文字母ASCII为:‘a’~’z’61H~7AH大写英文字母ASCII为:‘A’~’Z’41H~5AH程序:MOVAL,’z’ANDAL,0DFH;(AL)=5AH11011111DFH011000010100000161H41H01111010010110107AH5AH第3章Pentium的指令系统2021/10/63ORdset,src;(dset)←(dset)(src)操作:进行按位“或”运算两位操
4、作数中任一位为1(或都为1),则该位(结果)=1,否则为0。∧寄存器、存储器立即数、寄存器、存储器2)OR逻辑“或”指令(Lgicalinclusiveor)或指令应用用途:(1)清CF,OF,自己与自己“或”,操作数不变,CF=0,OF=0例:ORAL;(AL)不变,CF=0(2)使某操作数若干位保持不变,若干位与“0”或;若干位置1,与“1”或。(3)将两个操作数信息组合。若(AL)=03H用OR指令组合使(AL)=33H=’3’。ORAL,30H;(AL)=33H第3章Pentium的指令系统2021/10/64XORdset,src;(dset)(dset)(src)操作:对
5、指令的两个操作数进行按位“异或”运算。二位不相同时为1,相同时为0。寄存器、存储器立即数、寄存器、存储器3)XOR逻辑“异或”指令(Logicalexclusiveor)用途:对某些特定位求反,某些特定位与“1”其余位保持不变,保持不变与“0”。应用举例:例1:将(AL)中的第1、3、5、7位求反0、2、4、6位保持不变。MOVAL,0FHXORAL,0AAH第3章Pentium的指令系统2021/10/65例:比较三条(AX)清“0”指令:XORAX,AX;清AX,清CF。SUBAX,AX;清AX,清CF。MOVAX,0;清AX,不影响标志位。XOR清“0”指令在多字节累加程序中十
6、分有用。第3章Pentium的指令系统2021/10/66TESTdest,src;(dest)∧(src)操作:二个操作数相与,结果不存,只置条件码。寄存器、存储器立即数、寄存器、存储器4)TEST测试指令(Testornon_destructivelogicaland)用途:常常用来检测一些条件是否满足,但又不希望改变原有的操作数的情况下,常在此指令后边加一条条件转移指令。例:判断A单元中数据的奇偶性,设:(A)=0AEH程序:MOVAL,A;(AL)=0AEHTESTAL,01HJZEVEN;结果=0为偶数转EVEN…奇数处理…EVEN:偶数处理检测(AL)的最低位是否为0,若为0
7、转EVEN第3章Pentium的指令系统2021/10/67执行操作:对标志位无影响。字节求反:(dest)0FFH-(dest)字求反:(dest)0FFFFH-(dest)5)NOT逻辑“非”指令(Logicalnot)NOTdest;操作数只一个,对操作数按位求反。逻辑指令应用小结:(1)AND指令用来对指令的指定位清“0”。(2)OR指令常用来对某些位置1。(3)XOR指令用在程序开头,使某个寄存器清“0”。(4)NOT