《最新微机原理及接口度第10次课ppt课件.ppt》由会员分享,可在线阅读,更多相关《最新微机原理及接口度第10次课ppt课件.ppt(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、微机原理及接口微机原理及接口20132013年年度第度第1010次课次课第二章第二章 微型计算机指令系统微型计算机指令系统 第三节第三节 8086指令系统指令系统数据传送指令数据传送指令算术运算指令算术运算指令逻辑运算和移位指令逻辑运算和移位指令串操作指令串操作指令控制转移指令控制转移指令处理器控制指令处理器控制指令第三节第三节 8086/80888086/8088指令系统指令系统一、数据传送指令一、数据传送指令三、逻辑运算与移位指令三、逻辑运算与移位指令二、算术运算指令二、算术运算指令四、串操作指令四、串操作指令五、控制转移指令五、控制转移指令转移指令转移指令循环控制指令循环控制指令过程调用
2、指令过程调用指令中断指令中断指令(一)转移指令(一)转移指令IP目标地址目标地址1.JMP 无条件转移指令无条件转移指令例:例:JMP QUEST JMP BX JMP WORD PTR 2000H第三节第三节 8086/80888086/8088指令系统指令系统(一)转移指令(一)转移指令转移发生在段内(本代转移发生在段内(本代码段内),称为段内转码段内),称为段内转移,操作数为偏移地址;移,操作数为偏移地址;转移发生在段间(其它转移发生在段间(其它代码段),称为段间转代码段),称为段间转移,操作数为段基址和移,操作数为段基址和偏移地址。偏移地址。1.JMP 无条件转移指令无条件转移指令第三
3、节第三节 8086/80888086/8088指令系统指令系统(一)转移指令(一)转移指令1.JMP 无条件转移指令无条件转移指令1)段内直接转移段内直接转移转移地址的有效地址是当前转移地址的有效地址是当前IP和和8位或位或16位偏移量(带位偏移量(带符号数)之和。符号数)之和。若为若为8位的偏移量,转移范围在位的偏移量,转移范围在-128+127之间,称为短转移之间,称为短转移 若为若为16位偏移量,转移范围位偏移量,转移范围在在-32768+32767之间。之间。第三节第三节 8086/80888086/8088指令系统指令系统(一)转移指令(一)转移指令1.JMP 无条件转移指令无条件转
4、移指令2)段内间接转移段内间接转移转移地址的有效地址是寄存器的内容或存储单元的内容转移地址的有效地址是寄存器的内容或存储单元的内容(一个字)。(一个字)。Eg:MOV BX,2346H JMP BX;IPBX Eg:JMP WORD PTR QUEST;将将QUEST和和QUEST+1地址单元的内容送至地址单元的内容送至IP。(IP)(寄存器寄存器)或或(IP)(存储器存储器)第三节第三节 8086/80888086/8088指令系统指令系统(一)转移指令(一)转移指令1.JMP 无条件转移指令无条件转移指令3)段间直接转移段间直接转移指令中直接给出转移地址的段地址和偏移地址。指令中直接给出转
5、移地址的段地址和偏移地址。Eg:JMP FAR PTR NEXTPORT 转移地址的段地址和偏移地址放在存储器单元中(连续四转移地址的段地址和偏移地址放在存储器单元中(连续四个单元)。个单元)。4)段间间接转移段间间接转移Eg:JMP DWORD PTR NEXT(IP)offset 标号;标号;(CS)seg 标号标号(IP)mem32;(CS)mem32+2第三节第三节 8086/80888086/8088指令系统指令系统五、控制转移指令五、控制转移指令(一)转移指令(一)转移指令1.JMP 无条件转移指令无条件转移指令2.Jcc 条件转移指令条件转移指令条件转移指令是根据前一条指令的运行
6、结果对某些标志条件转移指令是根据前一条指令的运行结果对某些标志位的状态来决定转移的。有些指令只针对一个标志位的位的状态来决定转移的。有些指令只针对一个标志位的判断来实现转移,有些需对多个标志位的组合判断来实判断来实现转移,有些需对多个标志位的组合判断来实现转移。现转移。条条件件转转移移全全为为短短转转移移指指令令,即即转转移移目目标标与与下下一一条条指指令令之之间间的字节距离在的字节距离在-128+127范围以内。范围以内。(1)条件转移指令与无条件转移指令区别?)条件转移指令与无条件转移指令区别?(2)转移的范围超出)转移的范围超出-128+127怎么办?怎么办?第三节第三节 8086/80
7、888086/8088指令系统指令系统五、控制转移指令五、控制转移指令(一)转移指令(一)转移指令1.JMP 无条件转移指令无条件转移指令2.Jcc 条件转移指令条件转移指令条件转移指令条件转移指令J Jcc cc 根据指定的条件确定程序是否发生转移。根据指定的条件确定程序是否发生转移。其通用的格式为:其通用的格式为:Jcc label;条件满足,发生转移,;条件满足,发生转移,IPIP+8位位移量;位位移量;否则,顺序执行否则,顺序执行l Jcc 不影响标志,但要利用标志。不影响标志,但要利用标志。第三节第三节 8086/80888086/8088指令系统指令系统五、控制转移指令五、控制转移
8、指令(一)转移指令(一)转移指令1.JMP 无条件转移指令无条件转移指令2.Jcc 条件转移指令条件转移指令(1)(1)根据一个标志位的转移指令根据一个标志位的转移指令根据根据CFCF、OFOF、SFSF、ZFZF、PF5PF5个标志位两种状态个标志位两种状态可以生成可以生成1010条转移指条转移指令令指令指令转移条转移条件件说明说明JCJCCF=1CF=1有进位转移有进位转移JNCJNCCF=0CF=0无进位转移无进位转移JZ/JEJZ/JEZF=1ZF=1结果为结果为“0”0”转转移移JNZ/JNEJNZ/JNEZF=0ZF=0结果不为结果不为“0”0”转移转移JOJOOF=1OF=1有溢
9、出转移有溢出转移JNOJNOOF=0OF=0无溢出转移无溢出转移JP/JPEJP/JPEPF=1PF=1偶校验转移偶校验转移JNP/JPOJNP/JPOPF=0PF=0奇校验转移奇校验转移JSJSSF=1SF=1结果为负数转结果为负数转移移JNSJNSSF=0SF=0结果不为负数结果不为负数转移转移ADDAX,BX JNOL1 JNC L2 JMPL3第三节第三节 8086/80888086/8088指令系统指令系统五、控制转移指令五、控制转移指令(一)转移指令(一)转移指令1.JMP 无条件转移指令无条件转移指令2.Jcc 条件转移指令条件转移指令(2)(2)根据多个标志位的转移指令根据多个
10、标志位的转移指令有符号数分大于(有符号数分大于(Great Great ThanThan)、等于()、等于(EqualEqual)、小)、小于(于(Less ThanLess Than)3 3种情况;无种情况;无符号数分高于(符号数分高于(AboveAbove)、等)、等于(于(EqualEqual)、低于)、低于(BelowBelow)3 3种情况种情况 数据类型数据类型指令指令说明说明有符号数据有符号数据 JG/JNLE JG/JNLE 大于转移大于转移有符号数据有符号数据 JGE/JNL JGE/JNL 大于等于大于等于转移转移有符号数据有符号数据 JL/JNGE JL/JNGE 小于转
11、移小于转移有符号数据有符号数据 JLE/JNG JLE/JNG 小于等于小于等于转移转移无符号数据无符号数据 JA/JNBE JA/JNBE 高于转移高于转移无符号数据无符号数据 JAE/JNB JAE/JNB 高于等于高于等于转移转移无符号数据无符号数据 JB/JNAE JB/JNAE 低于转移低于转移无符号数据无符号数据 JBE/JNA JBE/JNA 低于等于低于等于转移转移第三节第三节 8086/80888086/8088指令系统指令系统五、控制转移指令五、控制转移指令(一)转移指令(一)转移指令2.Jcc 条件转移指令条件转移指令由由CX决定的转移决定的转移 JCXZ指令格式指令格式
12、JCXZ 目标地址标号目标地址标号当当CX=0转移转移将内存的数据段中存放了若干个将内存的数据段中存放了若干个8位带符号数,数据块的长位带符号数,数据块的长度为度为 count(不超过(不超过255),首地址位),首地址位table。试统计其中正。试统计其中正数、负数和零的个数,分别存入数、负数和零的个数,分别存入 plus、minus 和和zero单元。单元。DatasegmentTable db 256 dup(?)Count db 1 dup(?)Plusdb 1 dup(?)Minus db 1 dup(?)Zerodb 1 dup(?)Dataends内存的数据段中存放了若干个内存的
13、数据段中存放了若干个8 8位带符号数,数据块的长度为位带符号数,数据块的长度为 countcount(不超过(不超过255255),首地),首地址位址位tabletable。试统计其中正数、负数和零的个数,分别存入。试统计其中正数、负数和零的个数,分别存入 plusplus、minus minus 和和zerozero单元。单元。leasi,table cldcheck:lodsb oral,al jsx1 jzx2 incplus jmpnextx1:inc minus jmp nextx2:inc zeronext:dec cxjcxz over jmp checkover:hltCode
14、 ends end startDatasegmentTable db 256 dup(?)Count db 1 dup(?)Plusdb 1 dup(?)Minus db 1 dup(?)Zerodb 1 dup(?)DataendsCode segmentassume cs:code,ds:datamovax,datamovds,axstart:xoral,al movplus,al movminus,al movzero,al movch,al movcl,count 第三节第三节 8086/80888086/8088指令系统指令系统五、控制转移指令五、控制转移指令(一)转移指令(一)转移
15、指令1.JMP 无条件转移指令无条件转移指令2.Jcc 条件转移指令条件转移指令例例2:寄存器:寄存器AL中是字母中是字母Y(含大小写),则令(含大小写),则令AH=0,否则令否则令AH=-1.思考:如何判断思考:如何判断AX中的数据是奇数还是偶数?中的数据是奇数还是偶数?例例1:将:将AX中的无符号数除以中的无符号数除以2,如果是奇数,则加,如果是奇数,则加1后除以后除以2.例例3:比较:比较 AX和和BX中的数(无符号数),并将较大者存入中的数(无符号数),并将较大者存入max。第三节第三节 8086/80888086/8088指令系统指令系统一、数据传送指令一、数据传送指令三、逻辑运算与
16、移位指令三、逻辑运算与移位指令二、算术运算指令二、算术运算指令四、串操作指令四、串操作指令五、控制转移指令五、控制转移指令转移指令转移指令循环控制指令循环控制指令过程调用指令过程调用指令中断指令中断指令(一)转移指令(一)转移指令(二)循环控制指令(二)循环控制指令LOOP、LOOPE/LOOPZ、LOOPNE/LOOPNZ注:循环控制全为注:循环控制全为短转移指令短转移指令第三节第三节 8086/80888086/8088指令系统指令系统五、控制转移指令五、控制转移指令(二)循环控制指令(二)循环控制指令LOOP、LOOPE/LOOPZ、LOOPNE/LOOPNZ1.LOOP 循环指令循环指
17、令指令格式指令格式LOOP 目标地址标号目标地址标号操作:操作:1)(CX)(CX)-1 2)若若(CX)0,则转移到目标标号;,则转移到目标标号;否则退出循环。否则退出循环。循环指令主要对循环指令主要对CXCX或或ZFZF进行测试,确定是否循环,如下表所示进行测试,确定是否循环,如下表所示 指令格式指令格式执行操作执行操作LOOP OPRDLOOP OPRD循环循环LOOPNZ/LOOPNE OPRDLOOPNZ/LOOPNE OPRD不等不等/结果不为结果不为0 0时循环时循环LOOPZ/LOOPE OPRDLOOPZ/LOOPE OPRD相等相等/结果为结果为0 0时循环时循环第三节第三
18、节 8086/80888086/8088指令系统指令系统五、控制转移指令五、控制转移指令(二)循环控制指令(二)循环控制指令LOOP、LOOPE/LOOPZ、LOOPNE/LOOPNZ1.LOOP 循环指令循环指令2.LOOPE/LOOPZ 相等相等/为零循环指令为零循环指令指令格式指令格式LOOPE/LOOPZ 目标地址标号目标地址标号操作:操作:1)(CX)(CX)-1 2)若若(CX)0且且ZF=1,则转移到目标标号;,则转移到目标标号;否则退出循环。否则退出循环。3.LOOPNE/LOOPNZ 不等不等/非零循环指令非零循环指令指令格式指令格式LOOPNE/LOOPNZ 目标地址标号目
19、标地址标号操作:操作: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求:程序执行后求:程序执行后AX、BX、CX、DX的结果。的结果。AXBXCXDXLOOP L20 LOOPE L20LOOPNE L20第二节第二节 8086/80888086/8088指令系统指令系统一、数据传送指令一、数据传送指令三、逻辑运算与移位指令三、逻辑运算与移位指令二、算术运算指令二、算术运算指令四、串操作指令四、串操作指令五、控制转移指令五、控制转移指令六、处理器控制指令六、处理器控制指令(一)标志位操作指令(一)标志位操作指令 CF、DF、IFCF:1.CLC;(CF)02.STC;(CF)13.CMC;(CF)(CF)DF:1.CLD;(DF)02.STD;(DF)1IF:1.CLI;(IF)02.STI ;(IF)1小结小结!控制转移指令:控制转移指令:无无条条件件转转移移指指令令,条条件件转转移移指指令,循环指令令,循环指令结束语结束语谢谢大家聆听!谢谢大家聆听!27