的指令系统(位运算或逻辑运算)修改

的指令系统(位运算或逻辑运算)修改

ID:37605736

大小:413.31 KB

页数:61页

时间:2019-05-13

的指令系统(位运算或逻辑运算)修改_第1页
的指令系统(位运算或逻辑运算)修改_第2页
的指令系统(位运算或逻辑运算)修改_第3页
的指令系统(位运算或逻辑运算)修改_第4页
的指令系统(位运算或逻辑运算)修改_第5页
资源描述:

《的指令系统(位运算或逻辑运算)修改》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、位运算指令有两类:逻辑运算指令移位与循环指令位运算指令类型指 令指令功能表三 位运算指令列表逻辑运算ANDd,sORd,sXORd,sNOTdTESTd,s算术左移CF0算术右移CF逻辑左移CF0逻辑右移CF0SALd,countSARd,countSHLd,countSHRd,count移位ddsddsddsddds,不送结果位运算指令指令类型指 令指令功能表三 位运算指令列表(续)ROLd,countRORd,countRCRd,countRCLd,count循环左移CF循环右移CF带进位循环左

2、移CFCF循环带进位循环右移逻辑运算指令共有5条:AND按位逻辑与OR按位逻辑或XOR按位逻辑异或TEST按位逻辑与,但不保存结果NOT按位取反逻辑运算指令AND,OR和XOR指令•基本格式和功能指令格式:AND(OR/XOR/TEST)d,s执行的操作:AND(d)←(d)OR(s)XOR逻辑运算指令AND,OR和XOR指令•基本格式和功能常见逻辑运算的规则如下列表格所示:与(AND):全1才1,有0就0或(OR):有1就1,全0才0异或(XOR):相同为0,相异为110100010AND11110010OR01110010XOR逻辑运算指令

3、AND,OR和XOR指令•说明寻址方式:AND(OR,XOR,TEST)reg/mem,reg/memAND(OR,XOR,TEST)reg/mem,data说明:源S可以是通用寄存器、存储器或立即数;但d只能是通用寄存器或存储器,不能为立即数;而且d和s不能同时为存储器操作数。逻辑运算指令AND,OR和XOR指令•说明测试指令TEST不将结果送回d,它只影响F寄存器;这4条指令均影响标志位:SF、ZF、PF根据运算结果设置相应位;CF、OF总是置零;AF不确定。逻辑运算指令NOT指令•基本格式和功能指令格式:NOTd寻址方式:NOTreg/mem逻辑运算指令

4、NOT指令•功能&说明功能&说明:单操作数指令,对d进行按位取反(0变1,1变0)操作;d可以是通用寄存器或存储器操作数;NOT指令对标志寄存器各位均无影响;逻辑运算指令•说明小结:逻辑运算指令都是按位进行逻辑运算的,可以对字节或字进行逻辑运算;逻辑运算指令可用于组合、分离、屏蔽或设置某些位。逻辑运算指令•例子例1:请分别写出实现下列要求的指令:①使AL中高4位清零,低4位不变;②使AL中低4位清零,高4位不变;③使AL中最高位置1,其他位不变;④AL中低4位求反,其余各位不变。解:①ANDAL,0FH②ANDAL,0F0H③ORAL,80H④XORAL,0F

5、H逻辑运算指令•例子例2:请编制一程序段,将F寄存器中溢出位OF变反。解:程序如下:PUSHFPOPAXXORAX,0800HPUSHAXPOPF逻辑运算指令•例子例3:将AL清零,至少有以下几种方法,它们有何不同?①MOVAL,00H②ANDAL,00H③XORAL,AL移位&循环指令共有以下8条:SAL(shiftarithmeticleft)算术左移SAR(shiftarithmeticright)算术右移SHL(shiftlogicalleft)逻辑左移SHR(shiftlogicalright)逻辑右移ROL(Rotateleft)循环左移ROR(R

6、otateright)循环右移RCL(Rotateleftthroughcarry)带进位循环左移RCR(Rotaterightthroughcarry)带进位循环右移移位&循环指令移位类指令的格式(详见表三①②)〈移位指令〉d,〈Count〉移位类指令的寻址方式〈移位指令〉reg/mem,1/CL移位&循环指令移位指令执行的操作(参见表三①)SHL,SAL和SHR(d)左(右)移Count位,移出的位进入CF,移位造成的空位补0SAR(d)最高位不变,(d)右移Count位,移出的位进入CF,移位造成的空位用最高位值填补。左右移位使乘,除2运算变得简单,算术

7、右移可用于有符号数的除2运算。移位&循环指令循环指令执行的操作(详见表三②)ROL和ROR(小循环)(d)循环左(右)移Count位,每移1位,移出的位从另一端进入,同时进入CF。RCL和RCR(大循环)(d)循环左(右)移Count位,每移1位,CF从另一端进入,移出的位进入CF。移位&循环指令说明:各移位指令中的d可以是字或字节,可以是寄存器或存储器单元,但不能是立即数。指令中的Count指明移位的位数,只能用两种形式之一:1或CL带进位循环移位指令常用于多字节或多字的数据移位。移位&循环指令影响标志位情况:移位指令根据移位结束后的结果修改CF、PF、ZF

8、、SF和OF,而AF不确定;循环移位指

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

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

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