- 1、本文档共61页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 程序控制和中断管理 ;§4.1 程序地址的产生 ;一、程序计数器(PC) ;一、程序计数器(PC) ;一、程序计数器(PC) ;一、程序计数器(PC) ;一、程序计数器(PC) ;一、程序计数器(PC) ;一、程序计数器(PC) ;一、程序计数器(PC) ;一、程序计数器(PC) ;二、堆栈;有两组访问堆栈的指令:
1)PUSH和POP:
PUSH:把累加器(32位)的低半部分(低16位)拷贝到栈顶。
POP: 把栈顶的值拷贝到累加器的低半部分
2)PSHD和POPD:
当子程序或中断嵌套超过8级时,可利用这两条指令在数据存储区中建立一个堆栈。
即把堆栈区延伸到数???存储区。
PSHD dma ;将数据存储器中的值压入栈顶。
POPD dma ; 将栈项的值弹出到数据存储器。
;每当一个数值压入栈顶 ,堆栈中每级的内容都下移一级,栈底(第8级)的内容则丢失。
PSHD dma ;弹出操作把堆栈中每一级的值都拷贝到较高的下一级。
操作与压入操作相反,
POPD dma ;三、微堆栈(MSTACK);四、流水线操作 ;§4.2 转移、调用和返回 ;一、无条件指令;二、有条件指令; 条件的组合:
在条件指令的操作数中可以有多个条件。
注意:某些条件只有组合才是有意义的。
对于每一种组合,必须按如下规则从组1和组2中选择条件。
同一类的条件不能组合。
;有条件指令
条件转移指令
BCND pma,cond1[,cond2[,…]]
;条件cond1,cond2都满足时转移。
例: BCND PGM1,LEQ, OV
BANZ pma ;当前AR≠0时,转移。
条件调用指令
CC pma,cond1[,cond2[,…]]
;条件cond1,cond2都满足时调用。
例: CC 00BFh,LEQ, OV
条件返回指令
RETC cond1[,cond2[,…]]
;条件cond1,cond2都满足时返回。 ;§4.3 重复指令 ;§4.4 中断中断是由软件或硬件产生一个信号,该信号引起CPU挂起主程序,并转而执行一个子程序,即中断服务子程序。;2) 中断优先级
硬件中断可能同时产生,CPU依据中断源的优先级顺序而执行相应的中断服务子程序。
C240X的硬件中断分为两级:
CPU中断(8个)(核心级)
外设中断 (46个),分别挂在CPU中断中 6个 可屏蔽中断之下。
CPU中断优先级为
1--------RESET ;复位中断
2--------保留
3--------NMI ;不可屏蔽中断
4--------INT1 ;可屏蔽中断
5--------INT2 ;可屏蔽中断
6--------INT3 ;可屏蔽中断
7--------INT4 ;可屏蔽中断
8--------INT5 ;可屏蔽中断
9--------INT6 ;可屏蔽中断
;3)可屏蔽中断与不可屏蔽中断;4)中断矢量 ;;5)中断操作步骤;二、可屏蔽中断 ;2.中断管理寄存器 CPU中断寄存器 外设中断寄存器;●??CPU中断屏蔽寄存器(IMR)——地址0004h
向IMR中某位写1,则屏蔽相应的中断级,写1则使能该中断级。 ;2)外设中断寄存器: ;2)外设中断寄存器: ;2)外设中断寄存器: ;3)外设中断控制寄存器(2个);3)外设中断控制寄存器(2个);3)外设中断控制寄存器(2个);3)外设中断控制寄存器(2个);3)外设中断控制寄存器(2个);3. 可屏蔽中断的响应流程;3. 可屏蔽中断的响应流程;例: 典型中断服务程序代码
假设:挂在INT2 之下的EVA 通用定时器1的周期中断
INT2的中断矢量为 0004h
EVA 通用定时器
文档评论(0)