第7章逻辑运算-ppt课件

   日期:2024-12-28     作者:2l0g1       评论:0    移动:http://oml01z.riyuangf.com/mobile/news/9482.html
核心提示:1、第第7 7章章 逻辑运算逻辑运算 第第7章章 逻辑运算逻辑运算 7.1 逻辑运算指令逻辑运算指令 7.2 移位及循环移位移位及循环移位

1、第第7 7章章 逻辑运算逻辑运算 第第7章章 逻辑运算逻辑运算 7.1 逻辑运算指令逻辑运算指令 7.2 移位及循环移位移位及循环移位 第第7 7章章 逻辑运算逻辑运算 7.1 逻辑运算指令逻辑运算指令 一切的逻辑指令都将处置存放器或存储器中的一个字节或一个字。指令将被操作(参与运算)的字节、字的各位予以配对,并且设定CF、OF、PF、SF和ZF标志的形状,AF标志对于用户没有意义。第第7 7章章 逻辑运算逻辑运算 7.1.1 逻辑指令 1. AND 与运算 假设被配对的两个位都为1,那么其结果为1;而在其他的情况中,它的值均为0。 2. OR 或运算 假设被配对的两个位其中有一个为1,那么其

第7章逻辑运算-ppt课件

2、结果为1;假设两者都是0,那么结果为0。第第7 7章章 逻辑运算逻辑运算 3. XOR 异或运算 假设被配对的两个位其中一个为0,而另一个为1,那么结果为1;假设被配对的两个位是一样值(都为0或都为 1),其结果为0。 参与逻辑运算的操作数有两个,第一个操作数所指定的字节或字,存放在存放器或存储器单元中,其中的值是独一可改动的,由于最后的结果存放在此存放器或存储器单元中。 例如,下面的AND、OR及XOR指令,运用的操作数值是一样的。第第7 7章章 逻辑运算逻辑运算 A ND OR XOR 0101 0101 0101 0011 0011 0011结果: 0001 0111 0110第第7 7

3、章章 逻辑运算逻辑运算 例7.1 以下逻辑运算中,各标题彼此是互不相关的,假设AL的内容为11000101,BH的内容为01011100,进展以下逻辑运算后,相应的存放器被设为: (1) AND AL,BH ;将AL设为01000100 (2) OR BH,AL ;将BH设为11011101 (3) XOR AL,AL ;将AL设为00000000 (4) AND AL,00 ;将AL设为00000000 (5) AND AL,0FH ;将AL设为00000101 (6) OR CL,CL ;设定SF及ZF第第7 7章章 逻辑运算逻辑运算 例7.1中的(3)和(4)提供了一个将存放器清为0的方

4、法。(5)将AL的高4位清为0。 可以利用OR来完成下面的操作目的,也可以利用CMP指令(这样能够会更清楚)。 例7.2 OR的运用。 (1) OR CX,CX ;测试CX能否为0 JZ ;假设为0那么转移 (2) OR CX,CX ;测试CX的正负号 JS ;假设为负那么转移第第7 7章章 逻辑运算逻辑运算 4. TEST TEST的功能与AND类似,但是它只设定标志的值,不将结果存于第一个操作数的存放器或存储器单元中。 例7.3 TEST的运用。 (1) TEST BL,11110000B ;BL的高4位能否有不为0的位? JNZ 第第7 7章章 逻辑运算逻辑运算 (2) TEST AL,

5、00000001B ;AL的内容能否为奇 数? JNZ (3) TEST DX,0FFH ;DX的内容能否为0? JZ 第第7 7章章 逻辑运算逻辑运算 5. NOT NOT是另一种逻辑运算指令,它的作用是将存放器或存储器单元中的字节或字的每个位取反,即01,10。 例如,假设AL的内容为11000101,那么NOT AL指令会将AL的内容变为00111010。NOT与NEG二者并不一样,NEG是求一个数的相反数,它会将一切的位取反,然后再加1(即求补)。NEG进展的是0操作数。例如,0FFH(-1)经NEG后变为01H(+1)。 TEST与AND作用一样也是与运算,但是只设定标志,并不改动该

6、位的值。 第第7 7章章 逻辑运算逻辑运算 7.1.2 将小写转换为大写 例7.4 将小写转换成大写。 在许多情况下,需求将大写与小写字母进展转换。例如,他能够接纳到一个文件,里面的内容是由大写字母所组成的,或者一个程序,允许运用者以大写或小写回答命令(例如YES或yes),他需求将它们转换后再进展测试。第第7 7章章 逻辑运算逻辑运算 大写字母AZ,以十六进制的ASCII码表示即41H5AH;而小写字母az的ASCII码是61H7AH。二者独一不同之处是,大写的b5位是0,而小写的b5位是1,如下所示: 位:7 6 5 4 3 2 1 0 位: 7 6 5 4 3 2 1 0字母A:0 1

7、0 0 0 0 0 1 字母Z: 0 1 0 1 1 0 1 0字母 a:0 1 1 0 0 0 0 1 字母 z: 0 1 1 1 1 0 1 0第第7 7章章 逻辑运算逻辑运算 例7.4的程序清单(L74.LST)如下: ; filename:L74.ASM0000CODE SEGMENT PARA CODE A S S U M E CS:CODE,DS:CODE,SS:CODE 0100 ORG 100H 0100 EB 1C 90BEGIN:JMP MAIN ; 第第7 7章章 逻辑运算逻辑运算 43 68 61 6E 67 65 20TITLEX DB Change to upper

8、case letters 74 6F 20 75 70 70 65 72 63 61 73 65 20 6C 65 74 74 65 72 73; 011EMAIN PROC NEAR 011E 8D 1E 0104 R LEA BX,TITLEX+1 ;被转换字母开场地址 第第7 7章章 逻辑运算逻辑运算 B9 001A MOV CX,26 ;被转换字母数 0125B20: 8A 27 MOV AH,BX ;从TITLEX栏取字母 80 FC 61 CMP AH,61H ;假设字母小于a 第第7 7章章 逻辑运算逻辑运算 012A 72 0AJB B30 ;假设字母大于z 012C 80 F

9、C 7A CMP AH,7AH ;那么 012F 77 05 JA B30 ;转B30 80 E4 DF AND AH,11011111B ;假设字母是小写转换成大写 第第7 7章章 逻辑运算逻辑运算 88 27 MOV BX,AH ;转换结果仍存入TITLEX 0B30: 43 INC BX ;指向下一个字母 0 E2 ECLOOP B20 0 C3 RET 013AMAIN ENDP 013ACODE ENDS END BEGIN 第第7 7章章 逻辑运算逻辑运算 例7.4的程序,从TITLEX+1的偏移地址开场,将TITLEX字符串的字母从小写转换为大写,此程序设定BX的初值为TITLE

10、X+1的偏移地址,然后利用此地址,把从TITLEX+1开场的字节一一传送给AH。假设,字节的值是在61H到7AH的范围内,那么AND指令将会把b5位设为0: AND AH,11011111B 一切不是az的字节,那么不会改动其内容。这个程序同时把被转换后的字节再送回TITLEX,并且添加BX的值,以便处置下一个字节。第第7 7章章 逻辑运算逻辑运算 7.2 移位及循环移位移位及循环移位 移位和循环移位指令是CPU逻辑处置才干的一部分。它们具有以下几项功能。 (1) 可以作用在一个字节或字上; (2) 可以作用在存放器或存储器上; (3) 可以向左或向右移位/循环移位; (4) 假设作用的是字节

11、,那么最多可以移位/循环移位8位;假设是字,那么可以到达16位;第第7 7章章 逻辑运算逻辑运算 (5) 可分为逻辑(不带正负号)或算术(带有正负号)的移位; (6) 假设移位的位是1位,那么可以直接写成操作数1;假设,移位的位数大于1位,那么就要将此值传送给CL存放器。 7.2.1 移位 被移出的位将置入CF标志中。图7-1是移位指令的助记符和图形阐明。第第7 7章章 逻辑运算逻辑运算 SHR不带正负号的向右移位字或字节CF 0 SHL不带正负号的向左移位CF0SAR向右算术移位CFSAL向左算术移位CF0图7-1 移位指令的助记符和图形阐明第第7 7章章 逻辑运算逻辑运算 例如,SHR的运

12、用(下面的指令是延续的)。 MOV CL,03 (AL) MOV AL,10110111B ;10110111 SHR AL,1 ;01011011 向右移1位 SHR AL,CL ;00001011 向右移3位 第一条SHR将AL的内容向右移1位。被移出的位放在CF标志中,CF为1;并在AL的最左(最高)位移入0。第二条SHR将AL向右移3位。CF标志的内容依序变化为1、1及0,并且在AL的最左边三个位补0。 第第7 7章章 逻辑运算逻辑运算 例如,利用SAR向右算术移位的情况。 MOV CL,03 (AL) MOV AL,10110111B ;10110111 SAR AL,1 ;1101

13、1011 向右移1位 SAR AL,CL ;11111011 向右移3位 SAR与SHR有一重要的不同点,即SAR利用正负号位去填补最左边(最高位)空出的位,即最高位坚持不变。利用这种方法,正值与负值都坚持它们原来的正负号。上面的例子正负号位的值为1。第第7 7章章 逻辑运算逻辑运算 向左移位是在右边的位置上补0。因此,SHL及SAL的作用就完全一样了。向左移位可以使移位的值乘以2,向右移位可以使移位的值除以2。这是一种非常有用的方法,并且二者都比用乘除指令更快速。 奇数(例如,5和7)在除以2时,所得的值会比真正的值小(分别是2和3),并且CF被设定为1。假设要挪动两个位,可以延续运用两条移

 
特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

举报收藏 0打赏 0评论 0
 
更多>同类最新资讯
0相关评论

相关文章
最新文章
推荐文章
推荐图文
最新资讯
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号