微机原理-3-3指令系统Ⅴ控制转移课件

上传人:沈*** 文档编号:248229169 上传时间:2024-10-23 格式:PPT 页数:48 大小:311.01KB
返回 下载 相关 举报
微机原理-3-3指令系统Ⅴ控制转移课件_第1页
第1页 / 共48页
微机原理-3-3指令系统Ⅴ控制转移课件_第2页
第2页 / 共48页
微机原理-3-3指令系统Ⅴ控制转移课件_第3页
第3页 / 共48页
点击查看更多>>
资源描述
微机原理与接口技术,第,3,章 指令系统,Page,*,淡泊明智,第二部分,8086/8088,指令系统,四程序控制转移指令,程序控制转移类指令用来控制程序的执行顺序。程序的执行顺序是由,CS,和,IP,确定的,(一)无条件转移指令,JMP,(二)条件转移指令,(三)循环控制指令,(四)子程序调用与返回指令,(五)中断指令,(一)无条件转移指令,JMP,格式,:,JMP,OPRD,功能,:,若,OPRD,为,16,位数,则,IP,OPRD,,实现段内转移;,若,OPRD,为,32,位数,则,IP,OPRD,低,16,,,CS,OPRD,高,16,,段间转移,。,注解,:,(,1,),OPRD,常是,标号,Lable,,即某条指令的,符号地址,。,先定义标号,后引用,为,“向,后,引用”,;,先引用标号,后定义,为,“向,前,引用”,。,(,2,)该指令有如下,5,种形式:,、,JMP SHORT,Lable,;,段内短转移,SHORT,为短转移运算符(可以省略),,标号为短标号,8,bit,,,范围不超过,-128,+127,。,执行:,IP,OFFSET,标号,Lable,,,CS,不变,。,、,JMP NEAR PTR,Lable,;,段内直接转移,NEAR PTR,为近距离属性运算符,标号是近标号,16,bit,。范围不超过,-32768,+32767,。,执行:,IP,OFFSET,标号,Lable,,,CS,不变,。,、,JMP R16,/MEM16,;,段内间接转移,OPRD,是,16bit,的寄存器或者存储器地址。,范围是段内任何地方。,执行:,IP,(,R16,),,CS,内容不变。,、,JMP FAR PTR,Lable,;,段间直接转移,FAR,Lable,是远距离属性运算符,,Lable,是远标号,在另一个代码段内。,执行:,IP,OFFSET,Lable,,,CS,SEG,Lable,。,、,JMP MEM32,:,段间间接转移,MEM32,为双字单元的存储器地址,不能够用,Reg,替代。转移范围可达,1MB,。,执行:,IP,(,MEM,低,16,,前,2,字节),,CS,(,MEM,高,16,,后,2,字节)。,例:,JMP SHORT Again,;段内短转移,JMP NEAR PTR Begin,;段内直接转移,JMP WORD PTR BP DI,;段内间接转移,JMP BX,;段内间接转移,JMP FAR PTR Next,;段间直接转移,JMP DWORD PTR BX DI,;段间间接转移,第二部分,8086/8088,指令系统,四程序控制转移指令,(一)无条件转移指令,JMP,(二)条件转移指令,19,条,1,、基于算术标志位的的条件转移指令,10,条,JC/JNC JO/JNO JS/JNS,JE/JNE,(,JZ/JNZ,),JP/JNP,(,JPE/JPO,),2,、基于无符号数的条件转移指令,4,条,JA/JNBE JAE/JNB JB/JNAE JBE/JNA,3,、基于有符号数的条件转移指令,4,条,JG/JNLE JGE/JNL JL/JNGE JLE/JNG,4,、计数器为,0,条件转移指令,1,条,JCXZ,(三)循环控制指令,(四)子程序调用与返回指令,(五)中断指令,格式:,J,SHORT,Lable,功能:,IP,(,IP,),+,disp,(,8bit,),CS,不变,根据,FR,中标志位来,判断,是否需要转移,。,如满足转移条件,则,转移,到指定的目标地址。,如不满足转移条件,则,顺序执行,下一条指令。,注解:,(,1,)全部条件转移指令都是,段内直接短转移,,转移地址的偏移量限制在,-128,+127,范围内。,(,2,)条件转移指令中,条件缩写字母的含义是:,AAbove,高于,BBelow,低于,CCarry,进位,EEqual,等于,GGreater,大于,LLess,小于,NNot,无,OOver,溢出,SSign,符号,JJump,跳转,PE/,PO,Parity Even,奇偶性偶,/,奇,1,、基于算术标志位的的条件转移指令,(,1,),JC,有进位,/,借位转移指令,形式:,JC,标号,功能:,CF=1,转移到标号处执行,否则顺序执行。,(,2,),JNC,无进位,/,借位转移指令,形式:,JNC,标号,功能:,CF=0,转移到标号处执行,否则顺序执行。,(,4,),JNO,无溢出转移指令,形式:,JNO,标号,功能:未溢出(,OF=0,)转移到标号处执行,否则顺序执行。,(,3,),JO,溢出转移指令,形式:,JO,标号,功能:溢出(,OF=1,)转移到标号处执行,否则顺序执行。,(,5,),JS,负数转移指令,形式:,JS,标号,功能:若结果为负(,SF=1,)转移到标号处执行,否则顺序执行。,(,6,),JNS,正数转移指令,形式:,JNS,标号,功能:若结果为正(,SF=0,)转移到标号处执行,否则顺序执行。,(,7,),JE/JZ,等于转移指令,形式:,JE/JZ,标号,功能:若等于(,ZF=1,)转移到标号处执行,否则顺序执行。,(,8,),JNE/JNZ,不等于转移指令,形式:,JNE/JNZ,标号,功能:若不等于(,ZF=0,)转移到标号处执行,否则顺序执行。,(,10,),JNP/JPO,奇性转移指令,形式:,JNP/JPO,标号,功能:若结果的,低,8,位,有奇数个“,1”,(,PF=0,)转移到标号处执行,否则顺序执行。,(,9,),JP/JPE,偶性转移指令,形式:,JP/JPE,标号,功能:若结果的,低,8,位,有偶数个“,1”,(,PF=1,)转移到标号处执行,否则顺序执行。,该组指令需要检测,单个位,,常与,TEST,连用,2,、基于无符号数的条件转移指令,(,1,),JA/JNBE,大于,/,不低于不等于,转移指令,(AB),形式:,JA/JNBE,标号,功能:若大于(,CF=0,且,ZF=0,)转移到标号处执行,否则顺序执行。,(,2,),JAE/JNB,大于等于,/,不低于,转移指令,(,AB,),形式:,JAE/JNB,标号,功能:若大于等于(,CF=0,或,ZF=1,)转移到标号处执行,否则顺序执行。,(,4,),JBE/JNA,低于等于,/,不高于,转移指令,(,AB,),形式:,JBE/JNA,标号,功能:若小于(,CF=1,或,ZF=1,)转移到标号处执行,否则顺序执行,(,3,),JB/JNAE,低于,/,不高于不等于,转移指令,(A,B),形式:,JB/JNAE,标号,功能:若小于(,CF=1,且,ZF=0,)转移到标号处执行,否则顺序执行。,该组指令需要检测,CF,、,ZF,位,常与,CMP,连用,(,1,),JG/JNLE,大于,/,不小于不等于,转移指令(,A,B,),形式:,JG/JNLE,标号,功能:若大于(,SF=OF,且,ZF=0,)转移到标号处执 行,否则顺序执行。,(,2,),JGE/JNL,大于等于,/,不小于,转移指令(,AB,),形式:,JGE/JNL,标号,功能:若大于等于(,SF=OF,或,ZF=1,)转移到标号处 执行,否则顺序执行。,3,、基于有符号数的条件转移指令,(,3,),JL,小于,/,不大于不等于,转移指令(,A,B,),形式:,JL/JNGE,标号,功能:若小于(,SFOF,且,ZF=0,)转移到标号处执 行,否则顺序执行。,(,4,),JLE,小于等于,/,不大于,转移指令(,AB,),形式:,JLE/JNG,标号,功能:若小于等于(,SFOF=1,或,ZF=1,)转移到标号处执行,否则顺序执行。,该组指令需要检测,SF,、,OF,、,ZF,位,常与,CMP,连用,JCXZ,计数零转移指令,形式:,JCXZ,标号,功能:若,CX=0,,转移到标号处执行,否则顺序执行。,4,、计数器为,0,条件转移指令,MOV AL,,,1000H,TEST AL,,,01H,JZ NO,MOV CL,,,0,JMP EXIT,NO,:,MOV CL,,,1,EXIT,:,HLT,例:,在存储器的数据段存放了,1,个,8,位无符号数,偏移地址为,1000H,,判断它是否偶数。是,则将,CL,寄存器置,1,,否则,CL,置,0,。,第二部分,8086/8088,指令系统,四程序控制转移指令,(一)无条件转移指令,JMP,(二)条件转移指令,(三)循环控制指令,1,、,LOOP,2,、,LOOPE/LOOPZ,3,、,LOOPNE/LOOPNZ,(四)子程序调用与返回指令,(五)中断指令,特点:,(1),段内短距离相对转移指令,控制程序段的循环执行。,(2),循环次数由,CX,指定。,1,、循环转移指令,LOOP,形式:,LOOP,short-,lable,功能:,CXCX-1,,,若(,CX,),0,,则,(,IP,),=,(,IP,),+disp8,,,转移到目标地址,;否则结束循环,继续执行下一句。,注解:,功能相当于:,DEC CX,JNZ short-,lable,,,但,LOOP,对,FR,无影响。,例:求,S=1+2+3+100,MOV CX,,,100,MOV AX,,,0,MOV DX,,,0001H,REPEAT,:,ADD AX,,,DX,INC DX,LOOP,REPEAT,HLT,2,、相等,(,为零,),循环转移指令,LOOPE/LOOPZ,形式,:,LOOPE/LOOPZ short-,lable,功能,:,CXCX-1,;,若,CX0,且,ZF=1,,则,(,IP,),=,(,IP,),+disp8,,,转移到目标地址循环;否则执行下一条指令。,3,、不相等,(,不为零,),循环转移指令,LOOPNE/LOOPNZ,形式,:,LOOPNE/LOOPNZ short-,lable,功能,:,CXCX-1,;,若,CX0,且,ZF=0,,则,(,IP,),=,(,IP,),+disp8,,,转移到目标地址;否则执行下一条指令。,例:从,0B00H,单元开始存放了,256,字节,的字串,里面有若干,“,#”,,请寻找到,第一个“,#”,后送入,AL,,且将其,地址送入,DX,中。,“,#”,的,ASCII,码值为,23H,MOV CX,,,0100H,;,(CX)256,MOV SI,,,OAFFH,;,(SI)0AFFH,CYCLE,:,INC SI,;,(SI)=0B00H,CMP SI,,,23H,;比较,置,FR,中,ZF,位,LOOPNE,CYCLE,;没找到就循环,CYCLE,程序段,找到了就执行下一句,MOV AL,,,SI,;,(AL)23H,MOV DX,,,SI,;,(DX)(SI),HLT,;暂停,例:,100,个,8,位带符号数,存放在,2000H,开始的单元,,统计,负数,,将,个数,存在,NUM,单元中。,MOV NUM,,,0,;清,0,MOV SI,,,2000H,;赋首地址,MOV CX,,,100,;给循环次数,AGAIN,:,MOV AL,,,SI,;取被统计数,OR AL,,,AL,;影响,FR,的,SF,JNS,NOT-NUM,;非负,转移,INC NUM,;负数数量,+1,NOT-NUM,:,INC SI,;地址指向下一个数,LOOP,AGAIN,;,CX-1,不为,0,则循环,HLT,;程序暂停,第二部分,8086/8088,指令系统,四程序控制转移指令,(一)无条件转移指令,JMP,(二)条件转移指令,(三)循环控制指令,(四)子程序调用与返回指令,1,、,CALL,2,、,RET,(五)中断指令,定义,:,一种非连续而又多次重复的程序段,(,或叫过程,),特点,:,程序中常用到的具有相同功能的部分独立出来形成。需要时用调用指令,CALL,进行调用,子程序结束后,用返回指令,RET,再返回原来调用的地方。,优点,:,源程序长度缩短,有利于模块化设计,使程序的编制、阅读和修改都比
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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