微机原理及接口2013年度第10次.ppt

上传人:max****ui 文档编号:12166432 上传时间:2020-05-07 格式:PPT 页数:26 大小:1.41MB
返回 下载 相关 举报
微机原理及接口2013年度第10次.ppt_第1页
第1页 / 共26页
微机原理及接口2013年度第10次.ppt_第2页
第2页 / 共26页
微机原理及接口2013年度第10次.ppt_第3页
第3页 / 共26页
点击查看更多>>
资源描述
微机原理及接口,第二章微型计算机指令系统第三节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,串比较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后面的串操作指令一次;重复,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指令系统,例1:比较两个字符串,找出第一个不相等字符的地址。如两字串完全相同,则转到ALLMATCH进行处理。两字串长度均为20,首地址为STRING1和STRING2。,DECSIDECDI,MOVSI,OFFSETSTRING1MOVDI,OFFSETSTRING2,;取STRING1的偏移地址,;取STRING2的偏移地址,MOVCX,20,;置循环次数,CLD,;置方向,REPECMPSB,;若相同重复比较,若不同则退出,JZALLMATCH,;如ZF=1,则表示完全相同,ALLMATCH:,第三节8086/8088指令系统,例2:将DS:2000H开始的09的ASCII码传送到ES:3000H开始的数据区中.,例3:在DS:2000H4000H中查找A,找到送至DL否则DL=0.,第二章微型计算机指令系统第三节8086指令系统,数据传送指令算术运算指令逻辑运算和移位指令串操作指令控制转移指令处理器控制指令,第三节8086/8088指令系统,一、数据传送指令,三、逻辑运算与移位指令,二、算术运算指令,四、串操作指令,五、控制转移指令,转移指令,循环控制指令,过程调用指令,中断指令,(一)转移指令,IP目标地址,1.JMP无条件转移指令,例:,JMPQUESTJMPBXJMPWORDPTR2000H,第三节8086/8088指令系统,(一)转移指令,转移发生在段内(本代码段内),称为段内转移,操作数为偏移地址;转移发生在段间(其它代码段),称为段间转移,操作数为段基址和偏移地址。,1.JMP无条件转移指令,第三节8086/8088指令系统,(一)转移指令,1.JMP无条件转移指令,1)段内直接转移,转移地址的有效地址是当前IP和8位或16位偏移量(带符号数)之和。,若为8位的偏移量,转移范围在-128+127之间,称为短转移,若为16位偏移量,转移范围在-32768+32767之间。,第三节8086/8088指令系统,(一)转移指令,1.JMP无条件转移指令,2)段内间接转移,转移地址的有效地址是寄存器的内容或存储单元的内容(一个字)。,Eg:MOVBX,2346HJMPBX;IPBX,Eg:JMPWORDPTRQUEST;将QUEST和QUEST+1地址单元的内容送至IP。,(IP)(寄存器)或(IP)(存储器),第三节8086/8088指令系统,(一)转移指令,1.JMP无条件转移指令,3)段间直接转移,指令中直接给出转移地址的段地址和偏移地址。,Eg:JMPFARPTRNEXTPORT,转移地址的段地址和偏移地址放在存储器单元中(连续四个单元)。,4)段间间接转移,Eg:JMPDWORDPTRNEXT,(IP)offset标号;(CS)seg标号,(IP)mem32;(CS)mem32+2,第三节8086/8088指令系统,五、控制转移指令,(一)转移指令,1.JMP无条件转移指令,2.Jcc条件转移指令,条件转移指令是根据前一条指令的运行结果对某些标志位的状态来决定转移的。有些指令只针对一个标志位的判断来实现转移,有些需对多个标志位的组合判断来实现转移。,条件转移全为短转移指令,即转移目标与下一条指令之间的字节距离在-128+127范围以内。,(1)条件转移指令与无条件转移指令区别?(2)转移的范围超出-128+127怎么办?,第三节8086/8088指令系统,五、控制转移指令,(一)转移指令,1.JMP无条件转移指令,2.Jcc条件转移指令,条件转移指令Jcc根据指定的条件确定程序是否发生转移。,其通用的格式为:,Jcclabel;条件满足,发生转移,IPIP+8位位移量;,否则,顺序执行,Jcc不影响标志,但要利用标志。,第三节8086/8088指令系统,五、控制转移指令,(一)转移指令,1.JMP无条件转移指令,2.Jcc条件转移指令,(1)根据一个标志位的转移指令,根据CF、OF、SF、ZF、PF5个标志位两种状态可以生成10条转移指令,ADDAX,BXJNOL1JNCL2JMPL3,第三节8086/8088指令系统,五、控制转移指令,(一)转移指令,1.JMP无条件转移指令,2.Jcc条件转移指令,(2)根据多个标志位的转移指令,有符号数分大于(GreatThan)、等于(Equal)、小于(LessThan)3种情况;无符号数分高于(Above)、等于(Equal)、低于(Below)3种情况,第三节8086/8088指令系统,五、控制转移指令,(一)转移指令,2.Jcc条件转移指令,由CX决定的转移JCXZ,指令格式,JCXZ目标地址标号,当CX=0转移,将内存的数据段中存放了若干个8位带符号数,数据块的长度为count(不超过255),首地址位table。试统计其中正数、负数和零的个数,分别存入plus、minus和zero单元。,DatasegmentTabledb256dup(?)Countdb1dup(?)Plusdb1dup(?)Minusdb1dup(?)Zerodb1dup(?)Dataends,内存的数据段中存放了若干个8位带符号数,数据块的长度为count(不超过255),首地址位table。试统计其中正数、负数和零的个数,分别存入plus、minus和zero单元。,leasi,tablecldcheck:lodsboral,aljsx1jzx2incplusjmpnextx1:incminusjmpnextx2:inczeronext:deccxjcxzoverjmpcheckover:hltCodeendsendstart,DatasegmentTabledb256dup(?)Countdb1dup(?)Plusdb1dup(?)Minusdb1dup(?)Zerodb1dup(?)DataendsCodesegmentassumecs:code,ds:datamovax,datamovds,axstart:xoral,almovplus,almovminus,almovzero,almovch,almovcl,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指令系统,一、数据传送指令,三、逻辑运算与移位指令,二、算术运算指令,四、串操作指令,五、控制转移指令,转移指令,循环控制指令,过程调用指令,中断指令,(一)转移指令,(二)循环控制指令,LOOP、LOOPE/LOOPZ、LOOPNE/LOOPNZ,注:循环控制全为短转移指令,第三节8086/8088指令系统,五、控制转移指令,(二)循环控制指令,LOOP、LOOPE/LOOPZ、LOOPNE/LOOPNZ,1.LOOP循环指令,指令格式,LOOP目标地址标号,操作:1)(CX)(CX)-12)若(CX)0,则转移到目标标号;否则退出循环。,循环指令主要对CX或ZF进行测试,确定是否循环,如下表所示,第三节8086/8088指令系统,五、控制转移指令,(二)循环控制指令,LOOP、LOOPE/LOOPZ、LOOPNE/LOOPNZ,1.LOOP循环指令,2.LOOPE/LOOPZ相等/为零循环指令,指令格式,LOOPE/LOOPZ目标地址标号,操作:1)(CX)(CX)-12)若(CX)0且ZF=1,则转移到目标标号;否则退出循环。,3.LOOPNE/LOOPNZ不等/非零循环指令,指令格式,LOOPNE/LOOPNZ目标地址标号,操作:1)(CX)(CX)-12)若(CX)0且ZF1,则转移到目标标号;否则退出循环。,例:已知(AX)=1,(BX)=2,(CX)=3,(DX)=4,程序L20:INCAXADDBX,AXSHRDX,1(),在括号内分别填入LOOPL20;LOOPEL20LOOPNEL20,求:程序执行后AX、BX、CX、DX的结果。,第二节8086/8088指令系统,一、数据传送指令,三、逻辑运算与移位指令,二、算术运算指令,四、串操作指令,五、控制转移指令,六、处理器控制指令,(一)标志位操作指令CF、DF、IF,CF:,1.CLC;(CF)0,2.STC;(CF)1,DF:,1.CLD;(DF)0,2.STD;(DF)1,IF:,1.CLI;(IF)0,2.STI;(IF)1,小结,控制转移指令:无条件转移指令,条件转移指令,循环指令,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!