(精品)第三章(5)微机原理与接口技术

上传人:仙*** 文档编号:253057222 上传时间:2024-11-28 格式:PPT 页数:35 大小:477.01KB
返回 下载 相关 举报
(精品)第三章(5)微机原理与接口技术_第1页
第1页 / 共35页
(精品)第三章(5)微机原理与接口技术_第2页
第2页 / 共35页
(精品)第三章(5)微机原理与接口技术_第3页
第3页 / 共35页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,3.3.6,程序控制指令,控制转移指令分为:,循环控制指令,调用和返回指令,中断指令,转移指令的实质:改变,IP(,或,CS),的内容。,所有转移指令不会影响标志位。,分为,无条件转移,和,条件转移,两种。,1.,转移指令,(1),无条件转移指令,- JMP,本指令无条件转移到指定的目标地址,以执行从该地址开始的程序段。根据设置,CS,、,IP,的方法,,JMP,指令分成,4,种情况,。,段内直接转移:,指令中给出的,8/16,位的位移量,加到,IP,。,CS,保持不变。,段内间接转移:,REG/MEM,中的,16,位偏移地址,送,IP,。,CS,保持不变。,段间直接转移,指令中给出的,16,位的段和,16,位的偏移地址,送到,CS,和,IP,。,段间间接转移,MEM,中给出的,16,位的段和,16,位的偏移地址,送到,CS,和,IP,。,转移的目标地址由指令直接给出。指令中给出的目标地址实际上是一个,相对于,IP,的位移量,:,位移量 转移范围 汇编语言中格式,8,位,-128,+127 JMP SHORT OPRD,16,位,-32768,+32767 JMP NEAR PTR OPRD,例:,JMP0120H,;,直接转向,0120H,JMPSHORT LPI,;,转向,LPI,JMPNEAR PTR BBB,;,转向,BBB,由于是,段内,转移,故转移后,CS,内容保持不变,。,段内直接转移,段内间接转移,转移的目标地址由,寄存器,或,存储单元,的内容给出。,例:,JMP SI,若指令执行前,(SI)=1200H,,则指令执行后,(IP)=1200H,于是转向代码段的偏移地址,1200H,处执行。,注意:,目标地址以段内偏移的形式给出,而不是相对于,IP,的位移量,所以它是一个,16,位的操作数。,例,2,:,JMP BX+DI,设指令执行前,:,(DS)=3000H,(BX)=1300H,(DI)=1200H,(32500H)=2350H,;,则指令执行后,:(IP)=2350H,在汇编语言中,段内间接寻址通常写成:,JMP,WORD,PTR,BX+DI,表示所取得的目标地址是一个字。,段间直接转移,在指令中直接给出要转移到的目的段地址和偏移地址。,例:,JMP2000:1000H,执行时,(IP)1000H,(CS)2000H,注:,直接地址为符号地址时,段间直接转移指令中的符号地址前应加操作符,FAR PTR,。,例:,JMPFAR PTR far_label,其中的,far_label,为远类型的标号。,转移的目的地址,(,段和偏移,),在两个相邻的,字存储单元,中。例如:,JMPDWORD PTRSI,设指令执行前,:(DS)=4000H,(SI)=1212H,(41212H)=1000H,(41214H)=4A00H,则指令执行后,:(IP)=1000H,(CS)=4A00H,于是转到,4B000H,处开始执行指令。,例中的,DWORD PTR,表示转移地址是一个双字。,段间间接转移,条件转移指令可实现程序的条件分支。,条件转移指令根据标志位的状态来决定是否进行分支转移。,格式:,J,CC,label,;,CC,为条件名称缩写,指令的转移范围为,-128,+127,字节。,(2),条件转移指令,- J,CC,根据单个标志位设置的条件转移指令,JB/JC,;,低于,或,CF=1,则转移,JNB/JNC/JAE,;,高于或等于,或,CF=0,则转移,JP/JPE,;,奇偶标志,PF=1(,偶,),则转移,JNP/JPO,;,奇偶标志,PF=0(,奇,),则转移,JZ/JE,;,结果为零,(ZF=1),则转移,JNZ/JNE,;,结果不为零,(ZF=0),则转移,JS,;,SF=1,则转移,JNS,;,SF=0,则转移,JO,;,OF=1,则转移,JNO,;,OF=0,则转移,这类指令主要用来判断两个数的大小。,判断无符号数的大小,JA,高于则转移,条件为,: CF=0,ZF=0,,即,A,B,JNA/JBE,低于或等于则转移,条件为,: CF=1,ZF=1,,即,AB,根据组合条件设置的条件转移指令,JG,;,大于则转移,(A,B),条件为,: (SFOF=0),ZF=0,JGE,;,大于或等于则转移,(AB),条件为,: (SFOF=0),ZF=1,JLE,;,小于或等于则转移,(AB),条件为,: (SFOF=1),ZF=1,JL,;,小于则转移,(A,B),条件为,: (SFOF=1),ZF=0,判断有符号数的大小,2.,循环控制指令,用在循环程序中以确定是否要继续循环。,循环次数通常置于,CX,中。,转移的目标应在距离本指令,-128,+127,的范围之内。,循环控制指令不影响标志位。,(1)LOOP,格式:,LOOP,label,操作:,(CX)-1,CX,;,若,(CX)0,则转至,label,处执行;,否则退出循环,执行,LOOP,后面的指令。,LOOP,指令与下面的指令段等价:,DEC CX,JNZ,label,(2)LOOPZ (LOOPE),格式:,LOOPZ,label,操作:,(CX)-1,CX,;,若,(CX)0,ZF=1,则转至,label,处执行;,否则退出循环,执行,LOOP,后面的指令。,(3)LOOPNZ (LOOPNE),格式:,LOOPNZ,label,操作:,(CX)-1,CX,;,若,(CX)0,ZF=0,则转至,label,处执行;,否则退出循环,执行,LOOP,后面的指令。,循环指令的例子见下页。,例,1,:给,1A000H,开始的,256,个内存单元均减去,1,,若 发现某个单元减为,0,则立即退出循环,其后的单元不再减,1,。,MOV AX,1A00H,MOV DS,AX,MOV DI,0,MOV CX,256,GOON: DEC BYTE PTRDI,INC DI,CMP BYTE PTRDI-1,0,LOOPNZ GOON,HLT,例,2,:在,8000H,开始的长度为,1000,字节的字符串中查找,S,,若找到,把其偏移地址记录在,ADDR,中,否则,ADDR,单元置为,0FFFFH,。,MOV DI,8000H,MOV CX,1000,MOV AL, S,MOV ADDR,0FFFFH,GOON: SCASB,LOOPNZ GOON,JNZ DONE,DEC DI,MOV ADDR,DI,DONE: HLT,2.,子程序调用和返回,子程序是完成特定功能的一段程序。,当主程序(调用程序)需要执行这个功能时,,采用,CALL,调用指令转移到该子程序的起始处执行;,当运行完子程序功能后,,采用,RET,返回指令回到主程序继续执行。,主程序与子程序,CALL label,主程序,RET,子程序,回到,CALL,指令后的指令处,返回地址,子程序调用指令,CALL,类似,JMP,指令,,CALL,指令可分成,4,种类型:,CALL label,;,段内调用、直接寻址,CALL r16/m16,;,段内调用、间接寻址,CALL far,ptr,label,;,段间调用、直接寻址,CALL far,ptr,mem,;,段间调用、间接寻址,但不同于,JMP,指令,,CALL,指令需要保存返回地址:,段内调用,入栈偏移地址,IP,:,SPSP,2,,,SS:SPIP,段间调用,入栈偏移地址,IP,和段地址,CS,:,SPSP,2,,,SS:SPIP,;,SPSP,2,,,SS:SPCS,子程序返回指令,RET,根据段内和段间、有无参数,,RET,指令分成,4,种类型:,RET,;,无参数段内返回,RET i16,;,有参数段内返回,RET,;,无参数段间返回,RET i16,;,有参数段间返回,RET,指令弹出,CALL,指令压入堆栈的返回地址:,段内返回,出栈偏移地址,IP,:,IPSS:SP,,,SPSP,2,段间返回,出栈偏移地址,IP,和段地址,CS,:,IPSS:SP,,,SPSP,2,;,CSSS:SP,,,SPSP,2,i16,参数的作用,调整堆栈指针,SP,返回指令,RET,的参数,RET i16,;,有参数返回,RET,指令可以带有一个立即数,i16,,,返回时堆栈指针,SP,将增加,即,SPSP+i16,。,相当于一批参数出栈,这个特点使得程序可以方便地废除若干执行,CALL,指令以前,入栈的参数,。,返回指令,RET,的参数,断点地址,IP,向子程序传递的参数,SP,(,返回前),SP,(,返回后),RET 5,;,主程序,mov,al,0fh;,提供参数,AL,call,htoasc,;,调用子程序,.,;,子程序:将,AL,低,4,位,(1,位,16,进制数,),转换成,ASCII,码,htoasc,:and al,0fh;,只取,al,的低,4,位,or al,30h;al,高,4,位变成,3,cmp,al,39h;,是,0,9,还是,0Ah,0Fh,jbe,htoend,add al,7;,是,0Ah,0Fh,加上,7,htoend,:,ret,;,子程序返回,例,2.47,:主程序与子程序,3.,中断指令,8086/8088 CPU,在程序中允许安排一条中断指令来引起一个中断过程,这种中断叫内部中断,或叫软中断。,中断指令共有三条:,(1)INT n,执行类型,n,的中断服务程序,,N=0,255,(2)INTO,执行溢出中断的中断服务程序,(3)IRET,从中断服务程序返回调用程序,(1)INT n ;n=0,255,为中断类型号,本指令的操作步骤为:,(SP)-1,(SP)-2)(,FLAGS,),,,SP(SP)-2,保护标志寄存器的内容,IF0,TF0,中断服务程序中禁止外部,INTR,中断和单步中断,(SP)-1,(SP)-2)(,CS,),,,SP(SP)-2,,,CS(n*4+2),中断服务程序的段地址送入,CS,。,n*4,为向量地址。该向量地址中的内容即为中断服务程序入口地址。,(SP)-1,(SP)-2)(,IP,),,,SP(SP)-2,,,IP(n*4),中断服务程序的偏移地址送,IP,。,INT,指令只影响,IF,和,TF,对其余标志位无影响。,INT,指令可用于调用系统服务程序,如,INT 21H,(2),溢出中断,INTO,INTO,检查溢出标志,OF,如果,OF,=1,则启动一个类型,4,的中断过程;如果,OF,=,0,不做任何操作。,通常,INTO,指令安排在有符号数算术运算指令后面。如,IMULDX,INTO,;,若溢出,则启动,INT 4,否则继续,MOVRESULT,AX,MOVRESULT+2,DX,用于从中断服务程序返回被中断的程序。,任何中断服务程序不管是外部中断引起的,还是内部中断引起的,最后都要用,IRET,返回。,该指令执行的操作为:,IP(SP)+1,(SP) ;,栈顶内容弹出到,IP,SP(SP)+2,CS(SP)+1,(SP) ;,栈顶内容弹出到,CS,SP(SP)+2,FLAGS(SP)+1,(SP) ;,栈顶内容弹出到,FLAG,SP(SP)+2,(3),中断返回指令,IRET,3.3.7,处理器控制指令,1.,标志操作指令,用来设置标志位的状态。,(,1,),CF,设置指令,CLC,0,CF,STC,1,CF,CMC,CF,变反,(,2,),DF,设置指令,CLD,0,DF (,串操作的指针移动方向从低到高,),STD,1,DF (,串操作的指针移动方向从高到低,),(,3,),IF,设置指令,CLI,0,IF (,禁止,INTR,中断,),STI,1,IF (,开放,INTR,中断,),2.,外部同步指令,(,1,),ESC,换码指令,(,2,),WAIT,等待指令,(,3,),LOCK,封锁总线指令,执行,HLT,指令时,CPU,进入暂停状态,设置该指令通常是为了等待中断。,外部中断,(,包括,IF=1,时的可屏蔽中断请求,INTR,及非屏蔽中断请求,NMI),或复位信号可让,CPU,退出暂停状态。,HLT,不影响标志位。,3.,停机指令和空操作指令,(1),停机指令,HLT,(2),空操作指令,NOP,NOP,指令不做任何实质性的操作,但占用,3,个时钟周期,然后执行下一条指令。,多用于延时或预留存储空间,(,占位子,),。,1,、假设,(CS)=3000H, (DS)=4000H, (ES)=2000H, (SS)=5000H, (AX)=2060H, (BX)=3000H, (CX)=5, (DX)=0, (SI)=2060H, (DI)=3000H, (43000H)=0A006H, (23000H)=0B116H, (33000H)=0F802H, (25060H)=00B0H,.(SP)=0FFFEH, (CF)=1, (DF)=1,请写出下列各条指令单独执行完后,有关寄存器及存储单元的内容,若影响标志位请给出标志位,SF,、,ZF,、,OF,、,CF,的值。,(1) SBB AX , BX,(2) MUL BYTE PTRBX,(3) AAM,(4) DIVBH,(5) SARAX , CL,(6) XORAX , 0FFE7H,(7) REPSTOSB,(8) JMPWORD PTRBX,(9) XCHGAX , ES:BX+SI,二、下列程序段是比较,AX,,,BX,,,CX,中带符号数的大小,将最大数放在,AX,中。请将程序填充完整。,CMP AX,,,BX,(,1,),NEXT,XCHG AX,,,BX,NEXT,:,(,2,),AX,,,CX,JGE OUT,(,3,),AX,,,CX,OUT,:,三、执行完下列程序后,回答指定的问题。,MOV AX,,,0,MOV BX,,,2,MOV CX,,,50,LP,:,ADD AX,,,BX,ADD BX,,,2,LOOP LP,问:,(1),该程序的功能是,。,(2),程序执行完成后,(,AX,),=,。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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