逻辑运算与移位类课件.ppt

上传人(卖家):三亚风情 文档编号:3388925 上传时间:2022-08-26 格式:PPT 页数:35 大小:774KB
下载 相关 举报
逻辑运算与移位类课件.ppt_第1页
第1页 / 共35页
逻辑运算与移位类课件.ppt_第2页
第2页 / 共35页
逻辑运算与移位类课件.ppt_第3页
第3页 / 共35页
逻辑运算与移位类课件.ppt_第4页
第4页 / 共35页
逻辑运算与移位类课件.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

1、16.3 6.3 逻辑运算逻辑运算与移位与移位类类指令指令 逻辑运算指令逻辑运算指令移位指令移位指令循环移位指令循环移位指令26.3.1 逻辑运算指令逻辑运算指令 AND OR XOR NOT TEST注意这些指令对标志位的影响注意这些指令对标志位的影响31.逻辑与指令逻辑与指令ANDAND指令的格式指令的格式 AND Dest,Src;DestDest AND Src功能:源操作数功能:源操作数Src和目的操作数和目的操作数Dest按位按位执行与操作,结果送到执行与操作,结果送到Dest。语法格式:语法格式:AND Reg/Mem,Reg/Mem/Imm对标志位的影响:对标志位的影响:CF=

2、OF=0,根据结果设,根据结果设置置SF、ZF和和PF,对,对AF位定义。位定义。41.逻辑与指令逻辑与指令ANDAND指令的格式指令的格式 AND Dest,Src;DestDest AND Src功能:源操作数功能:源操作数Src和目的操作数和目的操作数Dest按位按位执行与操作,结果送到执行与操作,结果送到Dest。语法格式:语法格式:AND Reg/Mem,Reg/Mem/Imm对标志位的影响:对标志位的影响:CF=OF=0,根据结果设,根据结果设置置SF、ZF和和PF,对,对AF位定义。位定义。5例:逻辑指令应用;ANDAND指令可用于指令可用于复位复位某些位(同某些位(同0 0相与

3、),不影响其他位:将相与),不影响其他位:将BLBL中中D D3 3和和D D0 0位清位清0 0,其他位不变,其他位不变andand bl,1111 bl,1111 0 011110 0B B61.逻辑与指令逻辑与指令AND例例6.3072.逻辑或指令逻辑或指令ORO R 指 令 的 格 式:指 令 的 格 式:O R D e s t,S r c;DestDest OR Src功能:源操作数功能:源操作数Src和目的操作数和目的操作数Dest按位按位执行或操作,结果送到执行或操作,结果送到Dest。语法格式:语法格式:OR Reg/Mem,Reg/MemImm对标志位的影响:对标志位的影响:

4、CF=OF=0,根据结果设,根据结果设置置SF、ZF和和PF,对,对AF位定义。位定义。8例:逻辑指令应用;OROR指令可用于指令可用于置位置位某些位(同某些位(同1 1相相或),不影响其他位:将或),不影响其他位:将BLBL中中D D3 3和和D D0 0位置位置1 1,其他位不变,其他位不变oror blbl,0000,0000 1 100001 1B B92.逻辑或指令逻辑或指令OR例例6.31103.逻辑异或指令逻辑异或指令XORXOR指令的格式:指令的格式:XOR Dest,Src;DestDest XOR Src功能:源操作数功能:源操作数Src和目的操作数和目的操作数Dest按位

5、按位执行异或操作,结果送到执行异或操作,结果送到Dest。语法格式:语法格式:XOR Reg/Mem,Reg/Mem/Imm对标志位的影响:对标志位的影响:CF=OF=0,根据结果设,根据结果设置置SF、ZF和和PF,对,对AF位定义。位定义。11例:逻辑指令应用;XORXOR指令可用于指令可用于求反求反某些位(同某些位(同1 1相异或),不影响其他位:将相异或),不影响其他位:将BLBL中中D D3 3和和D D0 0位求反,其他不变位求反,其他不变xorxor blbl,0000,0000 1 100001 1B B ;注意注意NOTNOT与与XORXOR求反的区别求反的区别123.逻辑异

6、或指令逻辑异或指令XOR例例6.33134.逻辑非指令逻辑非指令NOTNOT指令的格式:指令的格式:NOT Dest;DestNOT Dest功能:目的操作数功能:目的操作数Dest按位执行非操作,结按位执行非操作,结果送到果送到Dest。语法格式:语法格式:NOT Reg/Mem对标志位的影响:无对标志位的影响:无144.逻辑非指令逻辑非指令NOT例例6.32155.测试指令测试指令TESTTEST指令的格式:指令的格式:TEST Dest,Src;Dest AND Src功能:源操作数功能:源操作数Src和目的操作数和目的操作数Dest按位执行与按位执行与操作,操作,Src和和Dest都不

7、变,影响标志位。都不变,影响标志位。语法格式:语法格式:TEST Reg/Mem,Reg/Mem/Imm对标志位的影响:和对标志位的影响:和AND指令一样。指令一样。AND与与TEST的关系类似的关系类似SUB与与CMP例例6.34test bl,9test bl,9jnzjnz there there;标志;标志ZF=0ZF=0,即,即D D0 0或或D3D3=1=1;则程序转移到;则程序转移到therethere.;否则;否则ZF=1ZF=1,即,即D D0 0和和D3 D3=0=0,顺序执行顺序执行there:.there:.TEST指令通常用于检测一些条件是否指令通常用于检测一些条件是

8、否满足,但又不希望改变原操作数的情况满足,但又不希望改变原操作数的情况17例例6.34186.3.2 移位指令移位指令nSHL nSHR nSAR19 移位指令移位指令(shift)将操作数移动一位或多位,分成将操作数移动一位或多位,分成逻辑移位逻辑移位和和算术移位算术移位,分别具有左移或右移操作,分别具有左移或右移操作SHLSHL reg/mem,1/CL reg/mem,1/CL;逻辑左移,最高位进入;逻辑左移,最高位进入CFCF,最低位补,最低位补0 0SHRSHR reg/mem,1/CL reg/mem,1/CL;逻辑右移,最低位进入;逻辑右移,最低位进入CFCF,最高位补,最高位补

9、0 0SALSAL reg/mem,1/CL reg/mem,1/CL;算术左移,最高位进入;算术左移,最高位进入CFCF,最低位补,最低位补0 0SARSAR reg/mem,1/CL reg/mem,1/CL;算术右移,最低位进入;算术右移,最低位进入CFCF,最高位不变,最高位不变SALSAL与与SHLSHL相同相同20移位指令的操作数移位指令的操作数移位指令的第一个操作数是指定的被移移位指令的第一个操作数是指定的被移位的操作数,可以是寄存器或存储单元位的操作数,可以是寄存器或存储单元后一个操作数表示移位位数后一个操作数表示移位位数,该操作数,该操作数为为1,表示移动一位;当移位位数,表

10、示移动一位;当移位位数大于大于1时,则用时,则用CL寄存器值表示,该操作数寄存器值表示,该操作数表达为表达为CL21 移位指令移位指令(shift)(a)逻辑)逻辑/算术左移算术左移SHL/SHR(b)逻辑右移)逻辑右移SHR(c)算术右移)算术右移SAR22移位指令对标志的影响移位指令对标志的影响按照移入的位设置进位标志按照移入的位设置进位标志CF根据移位后的结果影响根据移位后的结果影响SF、ZF、PF对对AF没有定义没有定义如果进行一位移动,则按照操作数的最高符如果进行一位移动,则按照操作数的最高符号位是否改变,相应设置溢出标志号位是否改变,相应设置溢出标志OF:如:如果移位前的操作数最高

11、位与移位后操作数的果移位前的操作数最高位与移位后操作数的最高位不同(有变化),则最高位不同(有变化),则OF=1;否则;否则OF=0。当移位次数大于当移位次数大于1时,时,OF不确定不确定例例6.35:移位指令移位指令movmov al,0f0h al,0f0h;al=f0h=al=f0h=1 1111 0000B111 0000Bshlshl al,1 al,1;al=1110 000al=1110 0000 0B=e0hB=e0h;CF=1CF=1,SF=1SF=1、ZF=0ZF=0、PF=0PF=0,OF=0OF=0shrshr al,1 al,1;al=al=0 0111 000111

12、 0000 0B=70hB=70h;CF=0CF=0,SF=0SF=0、ZF=0ZF=0、PF=0PF=0、OF=1OF=1sarsar al,1 al,1;al=al=000011 1000B=38h11 1000B=38h;CF=0CF=0,SF=0SF=0、ZF=0ZF=0、PF=0PF=0、OF=0OF=024例例6.35:移位指令移位指令25例例6.35:移位指令移位指令例例6.36:移位实现乘移位实现乘movmov si,axsi,axmovmov cl,2 cl,2shlshl si,clsi,cl;si4si4axaxadd add si,clsi,cl;si4si4ax+ax

13、ax+axadd add si,alsi,almovmov dx,sidx,sishrshr bx,1 bx,1add add dx,bxdx,bx可以考虑用乘法指令实现可以考虑用乘法指令实现 逻辑左移逻辑左移一位相当于一位相当于无符号数无符号数乘以乘以2 逻辑右移逻辑右移一位相当于一位相当于无符号数无符号数除以除以2276.3.3 循环移位指令循环移位指令nROL nRORnRCLnRCR28 循环移位指令循环移位指令(rotate)将操作数从一端移出的位返回到另一端形成将操作数从一端移出的位返回到另一端形成循环,分成不带进位和带进位,分别具有左循环,分成不带进位和带进位,分别具有左移或右移

14、操作移或右移操作ROL reg/mem,1/CLROL reg/mem,1/CL ;不带进位循环左移;不带进位循环左移ROR reg/mem,1/CLROR reg/mem,1/CL ;不带进位循环右移;不带进位循环右移RCL reg/mem,1/CLRCL reg/mem,1/CL ;带进位循环左移;带进位循环左移RCR reg/mem,1/CLRCR reg/mem,1/CL ;带进位循环右移;带进位循环右移29(a)不带进位循环左移)不带进位循环左移ROL(b)不带进位循环右移)不带进位循环右移ROR 循环移位指令循环移位指令(rotate)30(c)带进位循环左移)带进位循环左移RCL

15、(d)带进位循环右移)带进位循环右移RCR 循环移位指令循环移位指令(rotate)31循环移位指令对标志的影响循环移位指令对标志的影响按照指令功能设置进位标志按照指令功能设置进位标志CF不影响不影响SF、ZF、PF、AF如果进行一位移动,则按照操作数的最高符如果进行一位移动,则按照操作数的最高符号位是否改变,相应设置溢出标志号位是否改变,相应设置溢出标志OF:如:如果移位前的操作数最高位与移位后操作数的果移位前的操作数最高位与移位后操作数的最高位不同(有变化),则最高位不同(有变化),则OF=1;否则;否则OF=0。当移位次数大于。当移位次数大于1时,时,OF不确定不确定32例例6.37mo

16、v al,e0;al=0e0h=1110 0000brol al,1 ;al=1100 0001b=0c1h,CF=1ror al,1 ;al=1110 0000b=0e0h,CF=1rcl al,1 ;al=1100 0001b=0c1h,CF=133例例6.37(a)rcr al,1 al 1 1 1 0 0 0 0 0 CF rol al,1 al 1 1 0 0 0 0 0 1 CF ror al,1 al 1 1 1 0 0 0 0 0 CF rcl al,1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 al 1 1 0 0 0 0 0 1 CF 1 1 1 0 0 0 0 0 1(b)(c)(d)34例例6.3735例例6.38

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(逻辑运算与移位类课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|