逻辑运算和移位指令.ppt

逻辑运算和移位指令.ppt

ID:51962248

大小:347.36 KB

页数:35页

时间:2020-03-26

逻辑运算和移位指令.ppt_第1页
逻辑运算和移位指令.ppt_第2页
逻辑运算和移位指令.ppt_第3页
逻辑运算和移位指令.ppt_第4页
逻辑运算和移位指令.ppt_第5页
逻辑运算和移位指令.ppt_第6页
逻辑运算和移位指令.ppt_第7页
逻辑运算和移位指令.ppt_第8页
逻辑运算和移位指令.ppt_第9页
逻辑运算和移位指令.ppt_第10页
资源描述:

《逻辑运算和移位指令.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

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

2、……;ifnotmatch……YES:……;goeshereifall‘1’3对两个操作数进行按位逻辑”或”操作。格式:ORdest,src用途:对操作数的某几位置1;对两操作数进行组合。例1:把AL中的非压缩BCD码变成相应十进制数的ASCII码。ORAL,30H(2)逻辑”或”OR4例2:把AH和AL中的非压缩BCD码组合成压缩的BCD码,放到AL中。MOVCL,4SHLAH,CLORAL,AH例3:把AL的第5位置为1ORAL,00100000B5对操作数进行按位逻辑”非”操作。格式:NOTmem/reg例:NOTCXNOTBYTEPTR[DI](3)逻辑“非”(取反)N

3、OT6对两个操作数按位进行”异或”操作。格式:XORdest,src用途:对reg清零(自身异或)把reg/mem的某几位变反(与’1’异或)例1:把AX寄存器清零。例2:把DH的bit4,3变反①MOVAX,0XORDH,18H②XORAX,AX③ANDAX,0④SUBAX,AX(4)逻辑”异或”XOR7操作与AND指令类似,但不将”与”的结果送回,只影响标志位。TEST指令常用于位测试,与条件转移指令一起用。例:测试AL的内容是否为负数。TESTAL,80H;检查AL中D7=1?JNZMINUS;是1(负数),转MINUS……;否则(正数)不转移MINUS:…………(5)测

4、试指令TEST82.移位指令(1)非循环移位指令算术左移指令SAL(ShiftArithmeticLeft)算术右移指令SAR(ShiftArithmeticRight)逻辑左移指令SHL(ShiftLeft)逻辑右移指令SHR(ShiftRight)这4条指令的格式相同,以SAL为例:SALmem/reg,CL;移位位数大于1时1;移位位数等于1时9移位指令执行的操作如下图所示:最低位最高位CF0(a)算术/逻辑左移SAL/SHL最低位最高位CF(b)算术右移SAR最低位最高位CF(c)逻辑右移SHR0非循环移位指令功能示意图10算术移位——把操作数看做有符号数;逻辑移位——

5、把操作数看做无符号数。移位位数放在CL寄存器中,如果只移1位,也可以直接写在指令中。例如:MOVCL,4SHRAL,CL;AL中的内容右移4位影响C,P,S,Z,O标志。结果未溢出时:左移1位≡操作数*2右移1位≡操作数/211例:把AL中的数x乘10因为10=8+2=23+21,所以可用移位实现乘10操作。程序如下:SALAL,1;2xMOVAH,ALSALAL,1;4xSALAL,1;8xADDAL,AH;8x+2x=10x12不含进位位的循环左移指令ROL不含进位位的循环右移指令ROR含进位位的循环左移指令RCL含进位位的循环右移指令RCR格式同非循环移位指令。移位位数放

6、在CL寄存器中,如果只移1位,也可以直接写在指令中。循环移位指令只影响标志位CF和OF。(2)循环移位指令13这4条指令的功能如下图示:最低位最高位CF(a)ROL最低位最高位CF(c)RCL最低位最高位CF(b)ROR最低位最高位CF(d)RCR循环移位指令功能示意图14用移位操作代替乘除法可提高运算速度例:前例中计算x×10。(1)采用乘法指令:MOVBL,10MULBL共需70~77个T周期。(2)采用移位和加法指令:SALAL,1;2TMOVAH,AL;2TSALAL,1;2TSALAL,1;2TADDAL,AH;3T只需11个T周期,仅相当于乘法的1/7。15循环移位

7、举例:例1:将AL的高4位与低4位互换。MOVCL,4ROLAL,CL例2:将1A00H内存单元中的双字循环左移1位。CMP[1A00H],8000HCMCRCLWORDPTR[1A02H],1RCLWORDPTR[1A00H],116例:设在1000H开始存有四个压缩的BCD码12、34、56、78。要求把它们转换为ASCII码存放在3000H开始的单元中。假定DS、ES都已设置为数据段的段基址。程序见下页。1000H3000H1234567832H31H34H33H36H35H38H37

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

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

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