微机原理与接口技术实用教程.ppt_第1页
微机原理与接口技术实用教程.ppt_第2页
微机原理与接口技术实用教程.ppt_第3页
微机原理与接口技术实用教程.ppt_第4页
微机原理与接口技术实用教程.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

第3章 80X86的寻址方式 及指令系统 * * 1 1 本章要点 n n 及各类指令的功能和用法及各类指令的功能和用法 n80X86系统的各种寻址方式 n80X86的指令系统构成 DateDate 2 2 微机原理微机原理 BXAX BX ZF=0 ZF=0,CF=1 CF=1 :则:则 AX 9 AL AFAF ; AFCFCF, AL AFAF ; AFCFCF, , AL&0FH AL&0FHALAL ( (只取低只取低4 4位位) ) DateDate3535微机原理微机原理AL-AL,余数,余数-AH-AH 表示为表示为: : AH*0AH+ALAH*0AH+ALALAL,0 0AHAH; 先调整再做除法先调整再做除法,商到商到ALAL中中,余数到余数到AHAH中中。 DateDate3737微机原理微机原理1时,OF无意义. DateDate4141微机原理微机原理 (1 1)串传送:串传送:(DSDS:SISI)(ESES:DIDI),隐含寻址,),隐含寻址, 不影响标志位。不影响标志位。 MOVSWMOVSW;字传送:;字传送:SI2SI2SISI,DI2DI2DIDI MOVSBMOVSB;字节传送:;字节传送:SI1SI1SISI,DI1DI1DIDI (2 2)串比较:串比较:(DSDS:SISI)()(ESES:DIDI),隐含寻址,仅影响标志位。),隐含寻址,仅影响标志位。 CMPSWCMPSW;字比较:;字比较:SI2SI2SISI,DI2DI2DIDI CMPSBCMPSB ;字节比较:;字节比较:SI1SI1SISI,DI1DI1DIDI (3 3)串扫描:串扫描:隐含寻址,仅影响标志位。隐含寻址,仅影响标志位。 SCASW SCASW ;字扫描:;字扫描:AXAX(ESES:DIDI),),DI2DI2DIDI SCASB SCASB ;字节扫描:;字节扫描:ALAL(ESES:DIDI),),DI1DI1DIDI 3.2.4 3.2.4 串操作指令与重复前缀串操作指令与重复前缀 DateDate4242微机原理微机原理 (4 4)串取出:串取出:隐含寻址,不影响标志位。隐含寻址,不影响标志位。 LODSWLODSW ;字取出:(;字取出:(DSDS:SISI)AXAX,SI2SI2SISI LODSB LODSB ;字节取出:(;字节取出:(DSDS:SISI)ALAL,SI1SI1SISI (5 5)串存储:串存储:隐含寻址,不影响标志位。隐含寻址,不影响标志位。 STOSWSTOSW ;字存储:;字存储:AXAX(ESES:DIDI),),DI2 DI2 DIDI STOSBSTOSB ;字节存储:;字节存储:ALAL(ESES:DIDI),),DI1 DI1 DIDI DateDate4343微机原理微机原理 6 6、串操作可以加重复前缀使得其连续执行多次串操作可以加重复前缀使得其连续执行多次 REP MINST REP MINST ;当;当 CX0 CX0 时,重复执行时,重复执行MINSTMINST,且,且CXCX11CX CX ;MINSTMINST是是MOVSMOVS或或STOSSTOS指令指令 REPE/REPZ CINST REPE/REPZ CINST ;当;当 CX0 CX0 且且 ZF=1 ZF=1 时,重复执行时,重复执行CINSTCINST ;且;且CXCX1 1 CXCX,CINSTCINST是是CMPSCMPS或或SCASSCAS REPNE/REPNZREPNE/REPNZ CINST CINST ;当;当 CX0 CX0 且且 ZF=0 ZF=0 时,重复执行时,重复执行CINSTCINST; 且且CXCX1 1 CXCX,CINSTCINST是是CMPSCMPS或或SCASSCAS DateDate4444微机原理微机原理 串操作类指令可以与重复前缀配合使用,从而操作得串操作类指令可以与重复前缀配合使用,从而操作得 以重复执行,并在条件符合时停止执行。以重复执行,并在条件符合时停止执行。 无LODS REPE/REPZ REPNE/REPNZ SCAS REPE/REPZ REPNE/REPNZ CMPS REPMOVS 可添加的重复前缀 REP STOS 串操作指令 DateDate4545微机原理微机原理 转移类指令可以改变代码段寄存器转移类指令可以改变代码段寄存器CSCS与指令指针与指令指针IPIP的值或仅的值或仅 改变改变IPIP的值,从而可以以改变指令执行的顺序,以满足程序分的值,从而可以以改变指令执行的顺序,以满足程序分 支或跳转的需要。支或跳转的需要。 3.2.5 3.2.5 控制转移指令控制转移指令 1. 1. 无条件转移、调用和返回指令无条件转移、调用和返回指令 (1 1)无条件转移指令)无条件转移指令JMPJMP 格式:格式:JMP OPRD JMP OPRD ;OPRDOPRD是转移的目的地址是转移的目的地址 功能:转移到目的地址所指示的指令去执行功能:转移到目的地址所指示的指令去执行。 DateDate4646微机原理微机原理 直接转移直接转移 短程转移短程转移 近程转移近程转移 远程转移远程转移 JMP SHORT OPRD JMP SHORT OPRD ; IP=IP+8IP=IP+8位位移量,目的地址与位位移量,目的地址与JMPJMP指指 令所处地址的距离在令所处地址的距离在-128-128127127范围之内。范围之内。 近程转移:近程转移:JMP NEAR PTR OPRD JMP NEAR PTR OPRD IP=IP+16IP=IP+16位位移量,位位移量,NEARNEAR可省略,可省略, 目的地址与目的地址与JMPJMP指令处于同一地址段指令处于同一地址段 范围之内。范围之内。 JMP FAR PTR OPRD JMP FAR PTR OPRD IP=OPRDIP=OPRD的段内位移量的段内位移量 CS=OPRDCS=OPRD所在段地址。所在段地址。 直接转移的直接转移的3 3种形式:种形式: DateDate4747微机原理微机原理 间接转移指令的目的地址间接转移指令的目的地址可以由存储器或寄存器给出,可以由存储器或寄存器给出, 有以下有以下2 2种形式:种形式: 段内间接转移:段内间接转移: JMP WORD PTR OPRD JMP WORD PTR OPRD ;IP=EA IP=EA (由(由OPRDOPRD的寻址方式确定)的寻址方式确定) 例如:例如:JMP WORD PTRBX JMP WORD PTRBX ;IP=DS16+BXIP=DS16+BX JMP WORD PTR BX JMP WORD PTR BX ;IP=BXIP=BX 段间间接转移:段间间接转移: JMP DWORD PTR OPRD JMP DWORD PTR OPRD ; IP=EAIP=EA,CS=EA+2CS=EA+2 该指令指定的双字节地址指针的第一个字单元内容送该指令指定的双字节地址指针的第一个字单元内容送IPIP, 第二个字单元内容送第二个字单元内容送CSCS。 例如:例如: JMP DWORD PTR BX+SIJMP DWORD PTR BX+SI DateDate4848微机原理微机原理 (2 2)调用和返回)调用和返回 功能:调用功能:调用CALLCALL指令用来调用一个过程或子程序。指令用来调用一个过程或子程序。 调用指令格式如下:调用指令格式如下: 段内调用:段内调用: CALL NEAR PTR OPRDCALL NEAR PTR OPRD 操作:操作:SP=SP-2SP=SP-2,(,(SP+1SP+1,SPSP)=IP=IP,IP=IP+16IP=IP+16位位移量位位移量 CALLCALL指令首先将当前指令首先将当前IPIP内容压入堆栈。当执行内容压入堆栈。当执行RETRET指令后,指令后, 再从堆栈中取出一个字放入再从堆栈中取出一个字放入IPIP中。中。 DateDate4949微机原理微机原理 段间调用:段间调用: CALL FAR PTR OPRDCALL FAR PTR OPRD 操作:操作:SP=SP-2SP=SP-2,(,(SP+1SP+1,SPSP)=CS=CS;SP=SP-2SP=SP-2, (SP+1SP+1,SPSP)=IP=IP;IP=EAIP=EA;CS=EA+2CS=EA+2 CALLCALL指令先把指令先把CSCS压入堆栈,再把压入堆栈,再把IPIP压入堆栈。当执行压入堆栈。当执行RETRET指令指令 而返回时,从堆栈中取出一个字放入而返回时,从堆栈中取出一个字放入IPIP中,然后从堆栈中再取出中,然后从堆栈中再取出 第二个字放入第二个字放入CSCS中,作为段间返回地址。中,作为段间返回地址。 返回指令有如下格式:返回指令有如下格式: RET RET ;SP=SP=(SP+1SP+1),),SPSP),),SP=SP+2SP=SP+2 RET n RET n ;SP=SP=(SP+1SP+1),),SPSP),),SP=SP+2 SP=SP=SP+2 SP=SP+nSP+n RET nRET n指令要求指令要求n n为偶数,当为偶数,当RETRET正常返回后,再做正常返回后,再做SP=SP=SP+nSP+n操作。操作。 DateDate5050微机原理微机原理 2. 2. 条件转移指令条件转移指令 8086/80888086/8088提供了多条不同的条件转移指令,它们根据提供了多条不同的条件转移指令,它们根据 标志寄存器中各标志位的状态,决定程序是否进行转移。标志寄存器中各标志位的状态,决定程序是否进行转移。 条件转移指令的目的地址必须在现行的代码段条件转移指令的目的地址必须在现行的代码段(CS)(CS)内,内, 并且以当前指针寄存器并且以当前指针寄存器IPIP内容为基准,其位移必须在内容为基准,其位移必须在 +127-128+127-128的范围之内。的范围之内。 DateDate5151微机原理微机原理 3. 3. 循环控制指令循环控制指令 对于需要重复进行的操作,微机系统可用循环程对于需要重复进行的操作,微机系统可用循环程 序结构来进行,序结构来进行,8086/80888086/8088系统为了简化程序设计,系统为了简化程序设计, 设置了一组循环指令,这组指令主要对设置了一组循环指令,这组指令主要对CXCX或标志或标志 位位ZFZF进行测试,确定是否循环,指令均不影响任进行测试,确定是否循环,指令均不影响任 何标志位何标志位 。 DateDate5252微机原理微机原理 3.2.6 3.2.6 标志处理和标志处理和CPUCPU控制类指令控制类指令 CF CF CF 指令助记 符 功能指令名称 STC CF 1进进位标标志置 1 CLC CF 0进进位标标志置 0 CMC CF 进进位标标志置取反 STD DF 1方向标标志置 1 (地址减量) CLD DF 0方向标标志置 0 (地址增量) STI IF 1中断允许标许标 志置 1(开中断) CLI IF 0中断允许标许标 志置 0(关中断) 1.1.标志处理指令标志处理指令

温馨提示

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

评论

0/150

提交评论