汇编语言2-4逻辑移位指令.ppt

上传人:小飞机 文档编号:5993741 上传时间:2023-09-12 格式:PPT 页数:34 大小:2.14MB
返回 下载 相关 举报
汇编语言2-4逻辑移位指令.ppt_第1页
第1页 / 共34页
汇编语言2-4逻辑移位指令.ppt_第2页
第2页 / 共34页
汇编语言2-4逻辑移位指令.ppt_第3页
第3页 / 共34页
汇编语言2-4逻辑移位指令.ppt_第4页
第4页 / 共34页
汇编语言2-4逻辑移位指令.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《汇编语言2-4逻辑移位指令.ppt》由会员分享,可在线阅读,更多相关《汇编语言2-4逻辑移位指令.ppt(34页珍藏版)》请在三一办公上搜索。

1、一、数据传送类;二、算术运算类;三、位操作指令(逻辑运算和移位类);四、串操作类;五、控制转移类;六、处理器控制类;,8086指令系统,要求:全面而准确地理解每条指令的功能和应用重点掌握以下指令:AND、XOR、TEST、SHL、SHR、RCL、RCR,8086指令系统,位操作指令,它们都是按位进行操作的包含逻辑运算类指令和移位指令。位操作类指令以二进制位为基本单位进行数据的操作;这是一类常用的指令,都应该特别掌握注意这些指令对标志位的影响,逻辑运算和移位类,一、逻辑运算指令 AND/OR/XOR/NOT/TEST 二、移位指令 SHL/SHR/SAL/SAR三、循环移位指令 ROL/ROR/

2、RCL/RCR,一、逻辑运算指令,1、逻辑与指令AND,功能:对两个操作数执行按位的逻辑与运算,结果送到目的操作数,说明:(1)按位的逻辑与运算;(2)操作数不能同时为存储器操作数;(3)注意对标志位的影响P44;思考:(1)某一个操作数自己和自己相与?(2)AND指令主要用在什么场合?,屏蔽某些位P44的例3-18,2、逻辑或指令OR,功能:对两个操作数执行按位逻辑或运算,结果送到目的操作数,说明:(1)按位逻辑或运算;(2)OR指令对操作数的限制和对标志位的影响;思考:(1)某一个操作数自己和自己相逻辑或?(2)OR指令主要用在什么场合?,置某些位,3、逻辑异或指令XOR,功能:对两个操作

3、数执行按位逻辑异或运算,结果送到目的操作数,说明:(1)只有相“异或”的两位不相同,结果才是1;(2)XOR指令对操作数的限制和对标志位的影响同AND指令;思考:(1)某一个操作数自己和自己相异或?(2)XOR指令主要用在什么场合?,寄存器清,求反某些位,逻辑非指令NOT,功能:对一个操作数执行按位逻辑非运算,NOT reg/mem;reg/memreg/mem,说明:(1)按位取反,原来是“0”的位变为“1”,原来是“1”的位变为“0”;(2)NOT指令是一个单操作数指令;(3)NOT指令不影响标志位;,小结逻辑指令:,主要应用:对一个操作数的某些位进行置位(变为1)或复位(变为0)。源操作

4、数往往是立即数。实际编程时,需要正确地选取立即数。,例题:逻辑运算,mov al,45h;逻辑与 al=01hand al,31h;CF=OF=0,SF=0、ZF=0、PF=0mov al,45h;逻辑或 al=75hor al,31h;CF=OF=0,SF=0、ZF=0、PF=0mov al,45h;逻辑异或 al=74hxor al,31h;CF=OF=0,SF=0、ZF=0、PF=1mov al,45h;逻辑非 al=0bahnot al;标志不变,例题:逻辑指令应用,;AND指令可用于复位某些位(同0相与),不影响其他位:将BL中D3和D0位清0,其他位不变and bl,1111011

5、0B;OR指令可用于置位某些位(同1相或),不影响其他位:将BL中D3和D0位置1,其他位不变or bl,00001001B;XOR指令可用于求反某些位(同1相异或),不影响其他位:将BL中D3和D0位求反,其他不变xor bl,00001001B,测试指令TEST,功能:对两个操作数执行逻辑与运算,结果不回送到目的操作数,但要影响标志位,标志位影响同AND指令。,说明:(1)本条指令通常是用于检测一些条件是否满足,但又不希望改变原有的操作数的情况下。(2)本条指令通常在其后紧跟一条条件转移指令。,例:测试为0或1,若要检测AL中的最低位是否为1,若为1则转移。test al,01h;测试AL

6、的最低位D0jnz there;标志ZF=0,即D0=1;则程序转移到there.;否则ZF=1,即D0=0,顺序执行there:.,TEST,思考:(1)以上检测的是最低位,若要检测AX的最高位是否为1,若为1则转移,如何编程?,二、移位指令,其中两条左移指令对应同一条机器指令,所以,从机器指令的角度来说,移位指令只有三条。四条指令分成逻辑移位和算术移位,分别具有左移或右移操作,将操作数移动一位或多位。,移位指令(shift),SHL reg/mem,1/CL;逻辑左移,最高位进入CF,最低位补0,SHR reg/mem,1/CL;逻辑右移,最低位进入CF,最高位补0,SAL reg/mem

7、,1/CL;算术左移,最高位进入CF,最低位补0,SAR reg/mem,1/CL;算术右移,最低位进入CF,但符号位保持不变,SAL与SHL相同,演示,演示,演示,说明:,对操作数:(1)第一个操作数是指定的被移位的操作数,可以是寄存器或存储器;第二个操作数表示移位位数,该操作数为1,表示移动一位;当移位位数大于1时,则用CL寄存器值表示。对标志位:(1)按照移入的位设置进位标志CF(2)根据移位后的结果影响SF、ZF、PF(3)对AF没有定义对OF而言,如果进行一位移动,则按照操作数的最高符号位是否改变,相应设置溢出标志OF:如果移位前的操作数最高位与移位后操作数的最高位不同(有变化),则

8、OF=1;否则OF=0。当移位次数大于1时,OF不确定。,例:移位指令,mov cl,4mov al,0f0h;al=f0hshl al,1;al=e0h;CF=1,SF=1、ZF=0、PF=0,OF=0shr al,1;al=70h;CF=0,SF=0、ZF=0、PF=0、OF=1sar al,1;al=38h;CF=0,SF=0、ZF=0、PF=0、OF=0sar al,cl;al=03h;CF=1,SF=0、ZF=0、PF=1、OF=0,三、循环移位指令,将操作数从一端移出的位返回到另一端形成循环,分成不带进位和带进位,分别具有左移或右移操作,循环移位指令(rotate),ROL reg

9、/mem,1/CL;不带进位循环左移,ROR reg/mem,1/CL;不带进位循环右移,RCL reg/mem,1/CL;带进位循环左移,RCR reg/mem,1/CL;带进位循环右移,演示,演示,演示,演示,说明:循环移位指令,对操作数:同移位指令。对标志的影响:(1)按照指令功能设置进位标志CF(2)不影响SF、ZF、PF、AF(3)对于OF,同移位指令。如果进行一位移动,则按照操作数的最高符号位是否改变,相应设置溢出标志OF:如果移位前的操作数最高位与移位后操作数的最高位不同(有变化),则OF=1;否则OF=0。当移位次数大于1时,OF不确定,例:移位实现乘法,只要左移以后的数未超出

10、一个字节或字的范围逻辑左移一位相当于无符号数乘以2逻辑右移一位相当于无符号数除以2,实现位无符号数X10运算(1)用乘法指令(2)用移位与加法指令,mov ax,xshl ax,1;ax ax2Mov bx,xMov cl,3shl bx,cl;bx bx8add bx,axMov x,bx,mov bx,axmov si,axshl si,1;si2axadd si,ax;si3axmov dx,bxmov cl,03hshl dx,cl;dx8bxsub dx,bx;dx7bxadd dx,si;dx7bx3ax,例3.34:移位实现乘,例:32位数移位,;将DX.AX中32位数值整个左移一位shl ax,1rcl dx,1,总结,一、逻辑运算指令 AND/OR/XOR/NOT/TEST 二、移位指令 SHL/SHR/SAL/SAR三、循环移位指令 ROL/ROR/RCL/RCR,写出三条既可使AX寄存器清0,又能使CF为的指令P62第7、题,练习,作业,SHL/SAL指令,SHR指令,SAR指令,ROL指令,ROR指令,RCL指令,RCR指令,逻辑运算指令,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号