资源描述:
《微机原理与接口技术的课件 第3章2.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、8086指令系统(2)1三、逻辑运算和移位类逻辑运算移位操作非循环移位循环移位2逻辑运算和移位指令3指令类型逻辑运算与,或,非,异或移位操作非循环移位,循环移位4一、逻辑运算逻辑运算指令对操作数的要求大多与MOV指令相同。“非”运算指令要求操作数不能是立即数;除“非”运算指令外,其余指令的执行都会使标志位OF=CF=051.“与”指令:格式:ANDOPRD1,OPRD2操作:两操作数相“与”,结果送目标地址。注:与运算规则:见0为0,全1为1。例:MOVAX,5555HANDAX,0FFH;AX=0055H→屏蔽高位,
2、取出低位(高位清零);即对应位为0则清0,对应位为1则不变。6“与”指令的应用实现两操作数按位相与的运算ANDBL,[SI]使目标操作数的某些位不变,某些位清零ANDAL,0FH在操作数不变的情况下使CF和OF清零ANDAX,AX72.“或”运算指令格式:OROPRD1,OPRD2操作:两操作数相“或”,结果送目标地址。或运算规则:见1为1,全0为0。例:MOVAX,8888H;ORAX,0FFH;AX=88FFH→对应1位置1对应0位则不变。8“或”指令的应用实现两操作数相“或”的运算ORAX,[DI]使某些位不变,
3、某些位置“1”ORCL,0FH在不改变操作数的情况下使OF=CF=0ORAX,AX93.“非”运算指令格式:NOTOPRD操作:操作数按位取反再送回原地址注:指令中的操作数不能是立即数指令的执行对标志位无影响例:MOVAX,1;NOTAX;AX=0FFFEH该指令只是执行求反操作,而不是求反码指令,对符号位也求反。该指令不影响标志位。104.“异或”运算指令格式:XOROPRD1,OPRD2操作:两操作数相“异或”,结果送目标地址例:MOVAX,3333H;XORAX,0FFH;AX=33CCH→对应0不变,对应1求
4、反。例:XORAX,AX;AX=0清零某一操作数和自身相“异或”,结果为零。115.“测试”指令格式:TESTOPRD1,OPRD2操作:执行“与”运算,但运算的结果不送回目标地址。应用:常用于测试某些位的状态12二、移位指令非循环移位指令循环移位指令注:移动一位时由指令直接给出;移动两位及以上,则移位次数由CL指定。131.非循环移位指令逻辑左移算术左移逻辑右移算术右移14算术左移和逻辑左移算术左移指令:SALOPRD,1SALOPRD,CL逻辑左移指令:SHLOPRD,1SHLOPRD,CL有符号数无符号数移动一位
5、后,若CF与最高位不相等,则OF=1;否则OF=0151)算术左移和逻辑左移指令SAL/SHL格式:SALDST,CNT或SHLDST,CNT操作:CF←←0即将目的操作数的内容左移1位或CL所指定的位,每左移1位,左边的最高位移入CF位,而在右边的最低位补0.注:SAL指令与SHL指令操作一样,即机器码一样。例:MOVBL,0CH;BL=12(0CH)SHLBL,1;BL=24(18H)左移一位,等于对操作数(带符号或无符号)乘2运算,左移N次,则乘2N,但防止溢出.16逻辑右移SHR格式:SHROPRD,ISHRO
6、PRD,CL0CF无符号数的右移移动一位后,若次高位与最高位不相等,则OF=1;否则OF=017逻辑右移例:MOVAL,68HMOVCL,2SHRAL,CL;AL=1AH0CF011010AL00000110100ALCF0000011010ALCF00移动1次移动2次18算术右移SAR格式:SAROPRD,ISAROPRD,CL有符号数的右移CF将目标操作数向右移1位或CL指定的位数,操作数最低位移入标志位CF,移空的位由最高位补充。(例3-31)19非循环移位指令的应用左移可实现乘法运算右移可实现除法运算202.循
7、环移位指令不带进位位的循环移位带进位位的循环移位左移ROL右移ROR左移RCL右移RCR指令格式、对操作数的要求与非循环移位指令相同21不带进位位的循环移位CFCF22(5)循环右移ROR格式:RORDST,CNT操作:→→CF将(DST)右移CNT位,且将最低位移至最高位,移空的位由移出位补充。(6)循环左移ROL格式:ROLDST,CNT操作:CF←←将(DST)左移CNT位,且将最高位移至最低位,移空的位由移出位补充。例:MOVAL,45HMOVCL,4ROLAL,CL;AL=54H,高四位与低四位互换,使用RO
8、R也一样。23带进位位的循环移位CFCF24(7)带进位循环右移格式:RCRDST,CNT操作:→→CF将8位、16位寄存器或存储器内容左移,移空的位由CF位补充。(8)带进位循环右移格式:RCLDST,CNT操作:CF←←将8位、16位寄存器或存储器内容右移,移空的位由CF位补充。此四条指令只影响CF,不影响其它标志。当想把一个