程序控制和中断管理课件

上传人:F****n 文档编号:95442684 上传时间:2019-08-18 格式:PPT 页数:62 大小:489KB
返回 下载 相关 举报
程序控制和中断管理课件_第1页
第1页 / 共62页
程序控制和中断管理课件_第2页
第2页 / 共62页
程序控制和中断管理课件_第3页
第3页 / 共62页
程序控制和中断管理课件_第4页
第4页 / 共62页
程序控制和中断管理课件_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《程序控制和中断管理课件》由会员分享,可在线阅读,更多相关《程序控制和中断管理课件(62页珍藏版)》请在金锄头文库上搜索。

1、第四章 程序控制和中断管理,程序控制是指CPU对程序运行的控制 通常程序是顺序执行的,即在连续的程序存储器地址上取指并执行。但有时程序需要转移到不连续的地址,然后再连续执行新地址处的指令。 TMS320C2000中影响程序控制操作的指令有: 分支转移 调用与返回 重复指令 中断 复位,4.1 程序地址的产生,在执行当前指令的同时,程序流要求处理器生成下一条指令的程序地址。它是顺序或非顺序的。 程序地址产生逻辑使用以下硬件: (1)程序计数器(PC): C2000为16位PC。 (2)程序地址寄存器(PAR):驱动程序地址总线(PAB),提供程序的读、写地址。 (3)堆栈:16位宽、8级硬件堆栈

2、最多可保存8个返回地址。 (4)微堆栈(MSTACK):16位,1级深的堆栈,用于保存一个返回地址。 (5)重复计数器(RPTC):16位,与重复指令(RPT)一起,用来确定RPT后面的一条指令重复执行一定次数。,一、程序计数器(PC),程序计数器(PC)存放将被执行的下一条指令的地址。 影响PC加载方式的程序控制操作: (1)复位 (2)顺序执行 (3)分支转移 (4)由累加器转移 (5)子程序调用与返回 (6)从累加器调用与返回 (7)软件或硬件中断,加载到PC的地址: PC 0000h (复位向量地址),一、程序计数器(PC),程序计数器(PC)存放将被执行的下一条指令的地址。 PC的加

3、载方式: (1)复位 (2)顺序执行 (3)分支转移 (4)由累加器转移 (5)子程序调用与返回 (6)从累加器调用与返回 (7)软件或硬件中断,加载到PC的地址: PC PC + 1 例: PC 目标代码 指令 0108 be42 CLRC OVM 0109 bd00 LDP #0 010a ,一、程序计数器(PC),程序计数器(PC)存放将被执行的下一条指令的地址。 PC的加载方式: (1)复位 (2)顺序执行 (3)分支转移 (4)由累加器转移 (5)子程序调用与返回 (6)从累加器调用与返回 (7)软件或硬件中断,加载到PC的地址: PC = 转移指令之后16位立即数 例: B pma

4、,一、程序计数器(PC),程序计数器(PC)存放将被执行的下一条指令的地址。 PC的加载方式: (1)复位 (2)顺序执行 (3)分支转移 (4)由累加器转移 (5)子程序调用与返回 (6)从累加器调用与返回 (7)软件或硬件中断,加载到PC的地址: PC = 累加器的低16位值 例: BACC,一、程序计数器(PC),程序计数器(PC)存放将被执行的下一条指令的地址。 PC的加载方式: (1)复位 (2)顺序执行 (3)分支转移 (4)由累加器转移 (5)子程序调用与返回 (6)从累加器调用与返回 (7)软件或硬件中断,调用: 将PC中下一条指令的地址压入堆栈, 将调用指令后的16位立即数装

5、入PC; 返回: 将返回地址从堆栈中弹回PC。 例: PC 指令 0100 CALL 01e0h 0102 ,一、程序计数器(PC),程序计数器(PC)存放将被执行的下一条指令的地址。 PC的加载方式: (1)复位 (2)顺序执行 (3)分支转移 (4)由累加器转移 (5)子程序调用与返回 (6)从累加器调用与返回 (7)软件或硬件中断,调用: 将PC中下一条指令的地址压入堆栈, 将累加器中的低16位数装入PC; 返回: 将返回地址从堆栈中弹回PC。 例: PC 指令 0100 CALA 0101 ,一、程序计数器(PC),程序计数器(PC)存放将被执行的下一条指令的地址。 PC的加载方式:

6、(1)复位 (2)顺序执行 (3)分支转移 (4)由累加器转移 (5)子程序调用与返回 (6)从累加器调用与返回 (7)软件或硬件中断,将PC压入堆栈,然后用适当的中断向量单元地址装入PC。 通常在该单元地址中存放一条转移指令,又将相应的中断服务子程序地址装入PC。 例: INT2 产生中断 0004 ff80 B 1000h 1000 0108 be42 CLRC OVM 0109 bd00 LDP #0 010a 8b8f MAR *,AR7 010b b93f LACL #3Fh,响应中断 PC=010ah 压入堆栈,一、程序计数器(PC),程序计数器(PC)存放将被执行的下一条指令的地

7、址。 PC的加载方式: (1)复位 (2)顺序执行 (3)分支转移 (4)由累加器转移 (5)子程序调用与返回 (6)从累加器调用与返回 (7)软件或硬件中断,将PC压入堆栈,然后用适当的中断向量单元地址装入PC。 通常在该单元地址中存放一条转移指令,又将相应的中断服务子程序地址装入PC。 例: INT2 产生中断 0004 ff80 B 1000h 1000 0108 be42 CLRC OVM 0109 bd00 LDP #0 010a 8b8f MAR *,AR7 010b b93f LACL #3Fh,中断向量 0004h 装入PC,一、程序计数器(PC),程序计数器(PC)存放将被执

8、行的下一条指令的地址。 PC的加载方式: (1)复位 (2)顺序执行 (3)分支转移 (4)由累加器转移 (5)子程序调用与返回 (6)从累加器调用与返回 (7)软件或硬件中断,将PC压入堆栈,然后用适当的中断向量单元地址装入PC。 通常在该单元地址中存放一条转移指令,又将相应的中断服务子程序地址装入PC。 例: INT2 产生中断 0004 ff80 B 1000h 1000 0108 be42 CLRC OVM 0109 bd00 LDP #0 010a 8b8f MAR *,AR7 010b b93f LACL #3Fh,转移指令 1000h 装入PC,二、堆栈,硬件堆栈区:16位宽、8

9、级深 用途: 当调用子程序或发生中断时,程序地址产生逻辑利用该堆栈保存一个16位返回地址。 当CPU进入子程序或中断服务程序时,返回地址自动装入该堆栈的栈顶。 当子程序或中断服务程序完成时,返回指令将返回地址从栈顶传送到程序计数器PC。 堆栈也可以用来保存数据或用于其他目的。,有两组访问堆栈的指令: 1)PUSH和POP: PUSH:把累加器(32位)的低半部分(低16位)拷贝到栈顶。 POP: 把栈顶的值拷贝到累加器的低半部分 2)PSHD和POPD: 当子程序或中断嵌套超过8级时,可利用这两条指令在数据存储区中建立一个堆栈。 即把堆栈区延伸到数据存储区。 PSHD dma ;将数据存储器中

10、的值压入栈顶。 POPD dma ; 将栈项的值弹出到数据存储器。,每当一个数值压入栈顶 ,堆栈中每级的内容都下移一级,栈底(第8级)的内容则丢失。 PSHD dma,弹出操作把堆栈中每一级的值都拷贝到较高的下一级。 操作与压入操作相反, POPD dma,三、微堆栈(MSTACK),微堆栈共有1级深、16位宽,与堆栈不同,它的操作是不可见的。 执行下列指令时,程序地址产生逻辑,利用微堆栈保存返回地址。 块传送 BLDD BLPD 乘且累加 MAC、MACD 表读写 TBLD、TBLW,例: RPT #9 BLDD #lk, *+ 源地址 目的地址 操作过程: 执行 PC+1,然后 (PC)(

11、MSTACK) lk(源地址) PC (源地址) (目的地址) PC+1 PC 利用重复指令,进行数据块传送,直到重复计数器(RPTC)=0; (MSTACK) (PC),四、流水线操作,TMS320C2000的流水线有4个独立的阶段: 取指令 指令译码 取操作数 执行指令 由于这4个操作阶段是独立的,因此,这些操作可以重叠进行。在任意的指定周期内,1 - 4个不同的指令均被激活,每一条被激活的指令均处于一个不同的完成阶段。 对于单字、单周期指令(无等待状态),4级流水线的操作示意图如下:,4.2 转移、调用和返回,转移、调用和返回将改变指令流的顺序,转到新的地址单元去执行指令。 转移:仅使程

12、序控制转换到新的地址单元。 采用跳转指令 调用: 子程序调用 中断服务程序 要将返回地址保存到硬件堆栈的栈顶。 被调用的子程序或中断服务程序都以返回指令结束。 转移、调用和返回指令的类型: 无条件转移、调用和返回 有条件转移、调用和返回,一、无条件指令,无条件转移指令 B pma ;用指令中给定的地址pma 装载PC BACC ;用累加器中低16位数值ACC(015)装载PC 无条件调用指令 CALL pma ;将返回地址压入堆栈,用pma 装载PC CALA ;将返回地址压入堆栈,用ACC(015)装载PC 无条件返回指令 RET ;将栈顶的值(返回地址)加载到PC,二、有条件指令,有条件指

13、令指仅当某些指定的条件满足时才执行。 条件及符号,条件的组合: 在条件指令的操作数中可以有多个条件。 注意:某些条件只有组合才是有意义的。 对于每一种组合,必须按如下规则从组1和组2中选择条件。 同一类的条件不能组合。,有条件指令 条件转移指令 BCND pma,cond1,cond2, ;条件cond1,cond2都满足时转移。 例: BCND PGM1,LEQ, OV BANZ pma ;当前AR0时,转移。 条件调用指令 CC pma,cond1,cond2, ;条件cond1,cond2都满足时调用。 例: CC 00BFh,LEQ, OV 条件返回指令 RETC cond1,cond

14、2, ;条件cond1,cond2都满足时返回。,4.3 重复指令,重复指令(RPT)允许紧跟在RPT后的那一条指令重复执行N+1。 N为RRT指令中的一个操作数。 在执行RPT时,计数值N被装入重复计数器(RPTC),然后,被重复的指令每执行一次,RPTC就减1,直至RPTC为0。,例: 指令执行前寄存器状态: ARP = 1;AR1 = 300h 执行指令: RPT #9 ;下一条指令执行10次 BLDD #320h, *+ 上面的指令执行结果: 将数据存储器: 0320h032Ah单元的内容-0300h030Ah中,4.4 中断 中断是由软件或硬件产生一个信号,该信号引起CPU挂起主程序,并转而执行一个子程序,即中断服务子程序。,一、概述 1)中断信号的产生: C2000支持软件和硬件两种中断。 软件中断: 由中断指令 INTR,NMI 或 TRAP 请求。 硬件中断: 外部中断由外部中断引脚上的信号触发,如: RS , NMI 内部中断由片内外设的信号触发。,2) 中断优先级 硬件中断可能同时产生,CPU依据中断源的优先级顺序而执行相应的中断服务子程序。 C240X的硬件中断分为两级: CPU中断(8个)(核心级、一级) 外设中断 (46个),分别挂在CPU中断中 6个 可屏蔽中断之下。(二级) CPU中断优先级为 1-RESET ;复位中断 2-保留 3-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号