微机原理及接口2013年度第10次.ppt_第1页
微机原理及接口2013年度第10次.ppt_第2页
微机原理及接口2013年度第10次.ppt_第3页
微机原理及接口2013年度第10次.ppt_第4页
微机原理及接口2013年度第10次.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、微机原理及接口,第二章 微型计算机指令系统 第三节 8086指令系统,数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 控制转移指令 处理器控制指令,第三节 8086/8088指令系统,四、串操作指令,串传送 MOVSB ; (1) (DI) (SI) (2) SI、DI1,MOVSW ; (1) (DI) (SI) (2) SI、DI2,串存入 STOSB ; (1) (DI) AL (2) DI1,STOSW ; (1) (DI) AX (2) DI2,串装入 LODSB ; (1) AL (SI) (2) SI1,LODSW ; (1) AX (SI) (2) SI2,串比较

2、CMPSB ; (1) (SI) -(DI) (2) SI、DI1,CMPSW ; (1) (SI) -(DI) (2) SI、DI2,串扫描 SCASB ; (1) AL - (DI) (2) DI1,SCASW ; (1) AX - (DI) (2) DI2,(一)基本串操作指令,第三节 8086/8088指令系统,四、串操作指令,(二)串操作指令重复前缀,REP的操作:若(CX)=0,则退出循环。 (CX)(CX)-1 ; 执行REP后面的串操作指令一次; 重复 ,REPE/REPZ的操作:若(CX)=0或(ZF)=0,则退出循环。 (CX)(CX)-1 ; 执行REP后面的串操作指令一

3、次; 重复 ,REPNE/REPNZ的操作:若(CX)=0 或(ZF)=1 ,则退出循环。 (CX)(CX)-1 ; 执行REP后面的串操作指令一次; 重复 ,第三节 8086/8088指令系统,四、串操作指令,(三)DF置位/复位指令,CLD (DF)=0;STD (DF)=1,1. 源串SI对应DS段、可超越;目标串DI对应ES段、不可超越;,3. 每一次操作自动修改地址指针。,(四)串操作指令说明,4. REP可以与MOVS、STOS指令连用;REPZ、REPNE 可以与 CMPS、SCAS指令连用。,2. 执行重复串操作前,应将计数器CX中置数。,第三节 8086/8088指令系统,例

4、1:比较两个字符串,找出第一个不相等字符的地址。如两字串完全相同,则转到ALLMATCH进行处理。两字串长度均为20,首地址为STRING1和STRING2。,DECSI DEC DI,MOV SI , OFFSET STRING1 MOV DI, OFFSET STRING2,;取STRING1的偏移地址,;取STRING2的偏移地址,MOV CX, 20,;置循环次数,CLD,;置方向,REPE CMPSB,;若相同重复比较,若不同则退出,JZALLMATCH,;如ZF=1,则表示完全相同,ALLMATCH:,第三节 8086/8088指令系统,例2: 将DS:2000H开始的09的ASC

5、II码传送到ES:3000H开始的数据区中.,例3: 在DS:2000H4000H中查找A,找到送至DL否则DL=0.,第二章 微型计算机指令系统 第三节 8086指令系统,数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 控制转移指令 处理器控制指令,第三节 8086/8088指令系统,一、数据传送指令,三、逻辑运算与移位指令,二、算术运算指令,四、串操作指令,五、控制转移指令,转移指令,循环控制指令,过程调用指令,中断指令,(一)转移指令,IP目标地址,1. JMP 无条件转移指令,例:,JMP QUEST JMP BX JMP WORD PTR 2000H,第三节 8086/8

6、088指令系统,(一)转移指令,转移发生在段内(本代码段内),称为段内转移,操作数为偏移地址;转移发生在段间(其它代码段),称为段间转移,操作数为段基址和偏移地址。,1. JMP 无条件转移指令,第三节 8086/8088指令系统,(一)转移指令,1. JMP 无条件转移指令,1) 段内直接转移,转移地址的有效地址是当前IP和8位或16位偏移量(带符号数)之和。,若为8位的偏移量,转移范围在-128+127之间,称为短转移,若为16位偏移量,转移范围在-32768+32767之间。,第三节 8086/8088指令系统,(一)转移指令,1. JMP 无条件转移指令,2) 段内间接转移,转移地址的

7、有效地址是寄存器的内容或存储单元的内容(一个字)。,Eg: MOV BX, 2346H JMP BX; IPBX,Eg:JMP WORD PTR QUEST; 将QUEST和QUEST+1地址单元的内容送至IP。,(IP)(寄存器) 或 (IP)(存储器),第三节 8086/8088指令系统,(一)转移指令,1. JMP 无条件转移指令,3) 段间直接转移,指令中直接给出转移地址的段地址和偏移地址。,Eg:JMP FAR PTR NEXTPORT,转移地址的段地址和偏移地址放在存储器单元中(连续四个单元)。,4) 段间间接转移,Eg:JMP DWORD PTR NEXT,(IP) offset

8、 标号;(CS)seg 标号,(IP) mem32;(CS)mem32+2,第三节 8086/8088指令系统,五、控制转移指令,(一)转移指令,1. JMP 无条件转移指令,2. Jcc 条件转移指令,条件转移指令是根据前一条指令的运行结果对某些标志位的状态来决定转移的。有些指令只针对一个标志位的判断来实现转移,有些需对多个标志位的组合判断来实现转移。,条件转移全为短转移指令,即转移目标与下一条指令之间的字节距离在-128+127范围以内。,(1)条件转移指令与无条件转移指令区别? (2)转移的范围超出-128+127怎么办?,第三节 8086/8088指令系统,五、控制转移指令,(一)转移

9、指令,1. JMP 无条件转移指令,2. Jcc 条件转移指令,条件转移指令Jcc 根据指定的条件确定程序是否发生转移。,其通用的格式为:,Jcc label;条件满足,发生转移,IPIP+8位位移量;,否则,顺序执行,Jcc 不影响标志,但要利用标志。,第三节 8086/8088指令系统,五、控制转移指令,(一)转移指令,1. JMP 无条件转移指令,2. Jcc 条件转移指令,(1)根据一个标志位的转移指令,根据CF、OF、SF、ZF、PF5个标志位两种状态可以生成10条转移指令,ADDAX , BX JNOL1 JNC L2 JMPL3,第三节 8086/8088指令系统,五、控制转移指

10、令,(一)转移指令,1. JMP 无条件转移指令,2. Jcc 条件转移指令,(2)根据多个标志位的转移指令,有符号数分大于(Great Than)、等于(Equal)、小于(Less Than)3种情况;无符号数分高于(Above)、等于(Equal)、低于(Below)3种情况,第三节 8086/8088指令系统,五、控制转移指令,(一)转移指令,2. Jcc 条件转移指令,由CX决定的转移 JCXZ,指令格式,JCXZ 目标地址标号,当CX=0转移,将内存的数据段中存放了若干个8位带符号数,数据块的长度为 count(不超过255),首地址位table。试统计其中正数、负数和零的个数,分

11、别存入 plus、minus 和zero单元。,Datasegment Tabledb 256 dup (?) Countdb 1 dup (?) Plusdb 1 dup (?) Minusdb 1 dup (?) Zerodb 1 dup (?) Dataends,内存的数据段中存放了若干个8位带符号数,数据块的长度为 count(不超过255),首地址位table。试统计其中正数、负数和零的个数,分别存入 plus、minus 和zero单元。,leasi , table cld check: lodsb oral , al jsx1 jzx2 incplus jmpnext x1: i

12、nc minus jmp next x2: inc zero next: dec cx jcxz over jmp check over: hlt Codeends end start,Datasegment Tabledb 256 dup (?) Countdb 1 dup (?) Plusdb 1 dup (?) Minusdb 1 dup (?) Zerodb 1 dup (?) Dataends Codesegment assume cs:code,ds:data movax , data movds , ax start: xoral , al movplus,al movminus

13、,al movzero,al movch , al movcl , count,第三节 8086/8088指令系统,五、控制转移指令,(一)转移指令,1. JMP 无条件转移指令,2. Jcc 条件转移指令,例2:寄存器AL中是字母Y(含大小写),则令AH=0,否则令AH=-1.,思考:如何判断AX中的数据是奇数还是偶数?,例1:将AX中的无符号数除以2,如果是奇数,则加1后除以2.,例3:比较 AX和BX中的数(无符号数),并将较大者存入max。,第三节 8086/8088指令系统,一、数据传送指令,三、逻辑运算与移位指令,二、算术运算指令,四、串操作指令,五、控制转移指令,转移指令,循环控

14、制指令,过程调用指令,中断指令,(一)转移指令,(二)循环控制指令,LOOP、LOOPE/LOOPZ、LOOPNE/LOOPNZ,注:循环控制全为短转移指令,第三节 8086/8088指令系统,五、控制转移指令,(二)循环控制指令,LOOP、LOOPE/LOOPZ、LOOPNE/LOOPNZ,1. LOOP 循环指令,指令格式,LOOP 目标地址标号,操作:1) (CX)(CX)-1 2) 若(CX)0,则转移到目标标号; 否则退出循环。,循环指令主要对CX或ZF进行测试,确定是否循环,如下表所示,第三节 8086/8088指令系统,五、控制转移指令,(二)循环控制指令,LOOP、LOOPE/

15、LOOPZ、LOOPNE/LOOPNZ,1. LOOP 循环指令,2. LOOPE/LOOPZ 相等/为零循环指令,指令格式,LOOPE/LOOPZ 目标地址标号,操作:1) (CX)(CX)-1 2) 若(CX)0且ZF=1,则转移到目标标号; 否则退出循环。,3. LOOPNE/LOOPNZ 不等/非零循环指令,指令格式,LOOPNE/LOOPNZ 目标地址标号,操作:1) (CX)(CX)-1 2) 若(CX)0且ZF1,则转移到目标标号; 否则退出循环。,例:已知(AX)=1, (BX)=2, (CX)=3, (DX)=4,程序L20:INCAX ADDBX , AX SHRDX , 1 ( ),在括号内分别填入LOOP L20 ; LOOPE L20 LOOPNE L20,求:程序执行

温馨提示

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

评论

0/150

提交评论