指令系统4(逻辑运算和移位指令、串操作指令

指令系统4(逻辑运算和移位指令、串操作指令

ID:39690552

大小:3.06 MB

页数:41页

时间:2019-07-09

指令系统4(逻辑运算和移位指令、串操作指令_第1页
指令系统4(逻辑运算和移位指令、串操作指令_第2页
指令系统4(逻辑运算和移位指令、串操作指令_第3页
指令系统4(逻辑运算和移位指令、串操作指令_第4页
指令系统4(逻辑运算和移位指令、串操作指令_第5页
资源描述:

《指令系统4(逻辑运算和移位指令、串操作指令》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、3.3.3逻辑运算和移位指令逻辑运算指令(与/或/异或/非)●运算规则:按位操作,无进/借位●对标志位的影响(除NOT指令外):CFOFSFZFPFAF00***无定义根据运算结果设置注意:非指令NOT对标志无影响1表4–3逻辑运算类指令2(1)逻辑”与”AND对两个操作数进行按位逻辑“与”操作。格式:ANDdest,src用途:保留操作数的某几位,清零其他位。例1:保留AL中低4位,高4位清0。ANDAL,0FH例2:AL中有字符’a’~’z’,将其转换成大写。ANDAL,01011111B3例3:测试AL

2、的bit7,bit5,bit2是否都是1。ANDAL,10100100BCMPAL,10100100BJZYES;ifmatch,gotoYES……;ifnotmatch……YES:……;goeshereifall‘1’4对两个操作数进行按位逻辑”或”操作。格式:ORdest,src用途:对操作数的某几位置1;对两操作数进行组合。例1:把AL中的非压缩BCD码变成相应十进制数的ASCII码。ORAL,30H(2)逻辑”或”OR5例2:把AH和AL中的非压缩BCD码组合成压缩的BCD码,放到AL中。MOVCL,

3、4SHLAH,CLORAL,AH例3:把AL的第5位置为1ORAL,00100000B6对操作数进行按位逻辑”非”操作。格式:NOTmem/reg例:NOTCXNOTBYTEPTR[DI](3)逻辑“非”(取反)NOT7对两个操作数按位进行”异或”操作。格式:XORdest,src用途:对reg清零(自身异或)把reg/mem的某几位变反(与’1’异或)例1:把AX寄存器清零。例2:把DH的bit4,3变反①MOVAX,0XORDH,18H②XORAX,AX③ANDAX,0④SUBAX,AX(4)逻辑”异或”

4、XOR8操作与AND指令类似,但不将”与”的结果送回,只影响标志位。AND与TEST间的区别类似于SUB与CMP间的区别作用:TEST指令常用于位测试,与条件转移指令一起用。例:测试AL的内容是否为负数。TESTAL,80H;检查AL中D7=1?JNZMINUS;是1(负数),转MINUS……;否则(正数)不转移MINUS:…………(5)测试指令TEST9表4-4移位操作类指令2.移位指令10移位指令功能示意算术左移指令算术右移指令逻辑左移指令逻辑右移指令小循环右移指令小循环左移指令大循环左移指令大循环右移指

5、令CF=112.移位指令(1)非循环移位指令算术左移指令SAL(ShiftArithmeticLeft)算术右移指令SAR(ShiftArithmeticRight)逻辑左移指令SHL(ShiftLeft)逻辑右移指令SHR(ShiftRight)这4条指令的格式相同,以SAL为例:SALmem/reg,CL;移位位数>1时1;移位位数=1时12移位指令执行的操作如下图所示:最低位最高位CF0(a)算术/逻辑左移SAL/SHL最低位最高位CF(b)算术右移SAR最低位最高位CF(c)逻辑右移SHR0非循环移位

6、指令功能示意图13算术移位——把操作数看做有符号数;逻辑移位——把操作数看做无符号数。移位位数:一般放在CL寄存器中,但如果只移1位,也可以直接写在指令中。例如:MOVCL,4SHRAL,CL;AL中的内容右移4位对Flags影响:影响CF,PF,SF,ZF,OF标志。移位效果:结果未溢出时:左移1位≡操作数×2右移1位≡操作数214例:把AL中的数x×10因为10=8+2=23+21,所以可用移位实现乘10操作。程序如下:SALAL,1;2xMOVAH,ALSALAL,1;4xSALAL,1;8xADDA

7、L,AH;8x+2x=10x15不含CF的(小)循环左移指令ROL不含CF的(小)循环右移指令ROR含CF的(大)循环左移指令RCL含CF的(大)循环右移指令RCR格式同非循环移位指令。移位位数一般放在CL寄存器中但如果只移1位,也可直接写在指令中。对Flags的影响:只影响标志位CF和OF。(2)循环移位指令16这4条指令的功能如下图示:最低位最高位CF(a)ROL最低位最高位CF(c)RCL最低位最高位CF(b)ROR最低位最高位CF(d)RCR循环移位指令功能示意图17用移位操作代替乘除法可提高运算速度

8、例:前例中计算x×10。(1)采用乘法指令:MOVBL,10MULBL共需70~77个T周期。(2)采用移位和加法指令:SALAL,1;2TMOVAH,AL;2TSALAL,1;2TSALAL,1;2TADDAL,AH;3T只需11个T周期,仅相当于乘法的1/7。18循环移位举例:例1:将AL的高4位与低4位互换。MOVCL,4ROLAL,CL例2:将1A00H内存单元中的双字(32位)循环左移1位

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。