第五章程序控制和中断管理58.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 程序控制和中断管理 1.程序地址产生结构 2.转移,调用和返回 3.指令重复 4.中断系统 CPU芯片的程序地址产生逻辑 (1)程序计数(PC):16位PC对内部和外部程序存储 器寻址。 (2)程序地址寄存器(PAR):16位的程序地址寄存器(PAR)驱动程序地址总线(PAB),提供程序的读、写地址。 (3)堆栈:16位宽、8级深的硬件堆栈.最多可保存8个返回地址。此外,也可将堆栈用做暂存存储器。 (4)微堆栈(MSTACK):有时程序地址产生逻辑使用这个16位宽、1级深的堆栈保存1个返回地址。。 (5)重复计数器(RPTC):16位的RPTC与重复指令(RTP)一起,用来确定RTP后面的一条指令重复执行次数。 程序地址的产生有7种情况 (1)顺序操作:程序的地址来源于PC计数器(程序地址+1)。 (2)空(哑)周期:程序的地址来源于PAR(程序地址+1)。 (3)从子程序返回:程序的地址来源于栈顶(TOS)。 (4)从表传送或块传送返回:程序的地址来源于微堆栈(MSTACK)。 (5)转移到或调用指令中指定的地址:程序的地址来源于转移或调用指令,即利用程序读总线(PRDB)的方式获取程序地址。 (6)转移到或调用累加器低半部分指定的地址:程序的地址来源于累加器的低半部分,即利用数据读总线(DRDB)的方式获取程序地址。 (7)转移到中断服务程序:程序的地址来源于中断矢量单元,即利用程序读总线(PRDB)的方式获取程序地址。 加载到程序计数器(PC)的地址 1.顺序执行 2.分支(转移) 3.子程序调用和返回 4.软件或硬件中断 5.计算转移 堆栈 16位宽、8级深的硬件堆栈。调用了程序或发生中断时程序地址产生逻辑,利用该堆栈保存返回地址。 当CPU进入子程序或中断服务程序时,返回地址自动装入堆栈的栈顶,这一操作不需要附加的周期。 当子程序或中断服务程序完成时,返回指令将返回地址从栈顶传送到程序计数器。 当不需要用8级返回地址时,该堆栈也可以用来保存子程序或中断服务程序中的相关数据或用于其他目的。 PUSH和POP 累加器低16位拷贝到栈顶;反之栈顶拷贝到累加器低16位 PUSHD和POPD 数据存储区中的值拷贝到栈顶或栈顶的值拷贝到数据存储区。 微堆栈(MSTACK) 16位宽、1级深的堆栈保存1个返回地址。与堆栈不同,它的操作是不可见的。也就是说没有可以使用微堆栈保存信息的指令,只有程序地址产生逻辑才能够使用微堆栈。 程序地址产个逻辑在执行BLDD,BLPD,MAC, MACD,TBLR和TBLW这些串(块)操作指令时利用微堆栈保存返回地址。当执行这些指令时,首先把PC+2的地址送到微堆栈保存,当这些指令重复执行时,PC可使第一个操作数的地址自动增量,同时使第二个操作数的地址改变,到所重复的指令完成时再将微堆栈弹回到程序地址产生逻辑。 2.转移,调用和返回 转移、调用和返回将改变指令流的顺序,转到新的地址单元去执行指令。 转移仅使控制转换到新的地址单元,调用还要将返间地址(调用指令后面的那条指令的地址)保存到硬件堆栈的栈顶。 每个被调用的子程序或中断服务程序都以返回指令结束,返回指令将堆栈中的返回地址弹到程序计数器(PC)。 具有无条件和有条件两种类型的转移、调用和返回指令。 无条件转移 当执行无条件转移(B,BACC)和无条件调用子程序(CALL,CALA)指令时,将指定的程序储器的地址加载到PC,并从该地址开始执行程序。 执行无条件返回(RET)指令时,将栈项的值(返回地址)加载到PC,并从该地址继续执行程序。 有条件指令 组1:最多可选两个条件。每个条件必须来自不同的类(A或B),个能从向 一类中选择两个条件。 组2:最多可选3个条件,每个条件必须来自不同的类(A,B或C),不能有两个条件来自同一类。 BCND pma,cond1[,cond2][,...] 转移pma开始的指令 cc pma,cond1[,cond2][,...] 调用pma开始的子程序 重复指令 重复指令(RPT)允许一条指令的重复次数为N+1次。N为RPT指令的操作数。 当执行RPT时,计数值N被装入重复计数器(RPTC),然后,被重复的指令每执行一次,RPTC就减1,直至RPTC为0。如果计数值N是从一个数据存储器读取,RPTC作为16位计数器,如果N被设定为一个操作常数,则RPTC为8位计数器。 这种重复功能对于NORM(累加器内容规一化)、MACD(乘、累加及数据移动)和SUBC(条件减)等指令很有用。在指令重复时,程序存储器的地址总线和数据总线是空闲的,可与数据存储器的地址总线和数据总线并行地取第2个操作数。这就使得被

文档评论(0)

178****9325 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档