微机原理与接口技术(楼顺天)-第3章5.ppt_第1页
微机原理与接口技术(楼顺天)-第3章5.ppt_第2页
微机原理与接口技术(楼顺天)-第3章5.ppt_第3页
微机原理与接口技术(楼顺天)-第3章5.ppt_第4页
微机原理与接口技术(楼顺天)-第3章5.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本教案内容,第3章8086CPU指令系统汇编语言指令8086指令分类数据与转移地址的寻址方式数据传送类指令算术运算类指令逻辑运算类指令移位类指令标志位操作指令,转移指令循环控制指令子程序调用返回指令中断调用返回指令字符串操作指令I/O输入输出指令其它指令宏指令,5条逻辑运算类指令书写格式与完成的功能如下表所示。,3.6逻辑运算类指令,指令的运算都是按位进行的。NOT指令是将操作数的各位取反,其它指令是两个操作数的对应位实行相应的逻辑运算。指令可以有字节操作,也可以有字操作。,3.6逻辑运算类指令,指令执行后对标志位的影响情况:除NOT指令对标志位不产生影响外,其余指令将使CF、OF置0,并以正

2、常规则设置SF、ZF和PF的状态。,3.6逻辑运算类指令,3.6逻辑运算类指令,1.逻辑与指令(AND)格式:ANDDST,SRC;(DST)(DST)(SRC),并置各标志位AND完成将DST、SRC的内容进行相与操作,其结果保存在DST中,并设置PSW中的标志位。指令中的DST可以取通用寄存器、存储单元,SRC可以取通用寄存器、存储单元和立即数,但DST和RSC不能同时为存储单元。,(“And”byteorword),3.6逻辑运算类指令,例3.20求两个操作数的逻辑与。解:设VAR1为字型变量,则有:ANDAX,BX;(AX)(AX)(BX)ANDAL,156;(AL)(AL)10011

3、100B(156=10011100B)ANDVAR1,78AAH;(VAR1)(VAR1)78AAHANDCX,SI;(CX)(CX)((SI)),3.6逻辑运算类指令,2.逻辑测试指令(TEST)格式:TESTDST,SRC;(DST)(SRC),并置各标志位说明:TEST为逻辑测试指令,它与AND指令非常类似,完成将DST、SRC的内容进行相与操作,其结果不保存,并设置PSW中的标志位。指令中的DST和SRC的说明等同于AND指令。,(“Test”byteorword),3.6逻辑运算类指令,例3.21求两个操作数的逻辑测试。解:设VAR1为字型变量,则有:TESTAL,156;(AL)1

4、0011100B(156=10011100B)TESTVAR1,78AAH;(VAR1)78AAHTESTAX,BX;(AX)(BX)TESTCX,SI;(CX)((SI)),3.6逻辑运算类指令,3.逻辑或指令(OR)格式:ORDST,SRC;(DST)(DST)(SRC),并置各标志位说明:OR为逻辑或指令,它完成将DST、SRC的内容进行相或操作,其结果保存在DST中,并设置PSW中的标志位。指令中的DST和SRC的说明等同于AND指令。,(“Inclusiveor”byteorword),3.6逻辑运算类指令,例3.22求两个操作数的逻辑或。解:设VAR2为字节型变量,则有:ORAL,

5、01100001B;(AL)(AL)01100001BORVAR2,0FH;(VAR2)(VAR2)0FHORAX,BX;(AX)(AX)(BX)ORBX,DI;(BX)(BX)((DI)),3.6逻辑运算类指令,4.逻辑异或指令(XOR)格式:XORDST,SRC;(DST)(DST)(SRC),并置各标志位说明:XOR为逻辑异或指令,它完成将DST、SRC的内容进行异或操作,其结果保存在DST中,并设置PSW中的标志位。指令中的DST和SRC的说明等同于AND指令。,“Exclusiveor”byteorword,例3.23求两个操作数的逻辑异或。解:设VAR2为字节型变量,则有:XORA

6、L,01100001B;(AL)(AL)01100001BXORVAR2,0FH;(VAR2)(VAR2)0FHXORAX,BX;(AX)(AX)(BX)XORBX,DI;(BX)(BX)((DI)),3.6逻辑运算类指令,3.6逻辑运算类指令,5.逻辑非指令(NOT)格式:NOTDST;(DST)说明:NOT为逻辑非指令,它完成将DST的内容进行按位取反的操作,其结果保存在DST中,但NOT指令不影响PSW中的标志位。指令中的DST可以取通用寄存器和存储单元。,(“Not”byteorword),例3.24求操作数的逻辑非。解:设VAR1为字型变量,则有:NOTAL;(AL)NOTVAR1;

7、(VAR1),3.6逻辑运算类指令,3.6逻辑运算类指令,逻辑运算指令可以方便地对寄存器和存储单元中的数据进行逻辑操作。利用逻辑运算指令可通过适当选用源操作数的代码,使目的操作数的某些位进行清零、置位及取反操作,例如:,3.6逻辑运算类指令,OROL,03H;将CL的位0,1置1,其余位不变ANDAL,0F5H;将AL的位1,位3清零XORAH,0FH;将AH的低4位取反,高4位不变TESTAL,02H;测试AL的位1是否为0,JZZER1;若为0则转移到ZER1XORAX,AX;AX清0ANDAL,5FH;将AL中字母的ASCII码变换成“大写”字母的ASCII码ORAL,20H;将AL中字

8、母的ASCII码变换成“小写”字母的ASCII码,3.6逻辑运算类指令,作业:1013,3.7移位类指令,在8086指令系统中,移位类指令有:逻辑右移SHR算术右移SAR逻辑/算术左移SHL/SAL循环右移ROR循环左移ROL带进位循环右移RCR带进位循环左移RCL,3.7移位类指令,共同特点:正常影响PSW的SF、PF、ZF、CF和OF标志位,其中CF表示指令所移出的一位,OF1表示移位前后符号位发生了变化。移位类指令具有相同的指令格式SHRDST,CNT,3.7移位类指令,DST可以取通用寄存器和存储单元,CNT为移位次数,它只有两种取值:CNT=1,表示指令移1位;CNT=CL,表示移位

9、次数由CL的内容决定。在逻辑右移指令中,在最高位填入0;在算术右移指令中,在最高位填入符号位(即最高位);在逻辑/算术左移指令中,在最低位填入0;在循环右移指令中,在最高位填入其最低位的值,形成循环移位;在循环左移指令中,在最低位填入其最高位的值;在带进位循环右移和左移指令中,将DST和CF看成整体进行循环位操作。,1.移位指令,逻辑移位,左移SHLDST,CNT,右移SHRDST,CNT,D7D1D0,移位次数,3.7移位类指令,右移1位操作相当于将DST除以2;左移1位操作相当于将DST乘以2。,例.,SHRAX,1;将AX的内容右移1位,最;高位补0SHLAL,CL;将AL的内容左移CL

10、中指;定的次数,且每次移位;最低位补0,3.7移位类指令,SHLDAT1SI,CL;将内存某单元的;内容左移CL中所;中指定的次数SHRBL,2当移位次数1时,必须用CL提供移位次数,3.7移位类指令,算术移位,左移SALDST,CNT,右移SARDST,CNT,0,CF,DST,DST,CF,3.7移位类指令,2.循环移位指令,不带CF的循环移位,左移ROLDST,CNT,右移RORDST,CNT,3.7移位类指令,带CF的循环移位,左移RCLDST,CNT,右移RCRDST,CNT,3.7移位类指令,例1.若(BL)=01110010B,(CL)=3,CF=1,则CPU执行:RCRBL,C

11、L指令后,,(BL)=10101110B=0AEH,3.7移位类指令,01110010,1,D7D6D5D4D3D2D1D0,10111001,0,D7D6D5D4D3D2D1D0,01011100,1,D7D6D5D4D3D2D1D0,10101110,0,D7D6D5D4D3D2D1D0,一次,二次,三次,例2.编程序实现5*10运算。(不能用MUL指令),5*10=5*(2+8)=5*2+5*8,算法:,3.7移位类指令,MOVAL,05HSHLAL,1;(AL)=5*2MOVBL,AL;(BL)=5*2MOVCL,2SHLAL,CL;(AL)=5*8ADDAL,BL;(AL)=5*10,3.7移位类指令,3.7移位类指令,例3.28将一个字(AX)的内容除2,并进行四舍五入操作。解:对(AX)右移1位等效于(AX)2,四舍

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论