首页 > 编程知识 正文

能使累加器A的内容取反的指令是(第6章-控制器-中断系统 Interrupt)

时间:2023-05-04 11:14:04 阅读:122012 作者:3481

一、概要中断概念是50年代中期提出的,在此之前计算机可以自动运行程序,但两个问题没有解决好:异常情况和特殊要求,如断电等。 CPU和外围设备串行工作,CPU未充分利用。 CPU是电子设备,基本操作时间为ns级,但外围设备大多为机电设备,基本操作时间为ms、s级。 CPU等待外围设备的操作在时间上导致巨大的浪费,并且CPU的效率大幅降低。 为了改变这种状况,为了充分利用机器资源提出了中断。 原因1 .处理异常情况或特殊要求

2 .提高CPU效率

3 .需要实时控制

二、基本概念1 .定义中断是指计算机在运行过程中,遇到一些异常情况或特殊要求时,CPU暂停运行中的程序,转到外地请求服务,服务结束后自动返回原程序的过程或功能

从中断的定义来看,中断过程类似于“转子”过程,两者有区别吗? 区别是什么?

2 .中断与“转子”的区别“转子”是事先安排好的,但中断往往是随机的。 “转子”事先安排了编程人员的编程,但中断大多是由一些特殊情况引起的。 这些情况是随机的。

一种中断-自发中断是人为设置的,所以使用“多”字。

主-子程序一般在功能上有联系,但中断程序和中断服务程序可以没有任何联系。 中断过程往往以硬件实现比“转子”过程更复杂的中断功能,而不是一条或多条指令容易解决,其过程远比“转子”复杂。

三、中断类型(不同方式,中断分为不同类别)中断原因

强制中断和自愿中断都是程序中断

处理方式程序中断:执行中断服务程序

简单中断: DMA

中断源可以阻断中断: CPU阻断中断请求,不响应。

不可中断: CPU必须响应(断电) ) )。

服务入口地址形成方式向量中断:外围设备在发出中断请求时,通过硬件主动向主机提供服务程序的入口地址

非向量中断:不能直接提供服务程序的入口地址。 必须在软件查询措施中最后找到条目地址

四.中断过程1 .中断请求中断请求信号的提交

CPU在当前指令周期结束后,询问有无中断请求。

为每个中断源设置中断请求触发IQ。

为了灵活的控制,对每个中断源设定中断屏蔽触发IM

2 .队列判断根据中断源的重要性,对每个中断源确定优先级,根据优先级的大小对每个中断源进行排队,当CPU响应时,先对优先级高的中断请求进行响应。 因此,CPU在对中断作出响应之前,必须对中断源进行排队判定。

中断源的队列判定既可以用硬件实现,也可以用软件实现。

3 .中断响应中断响应:指CPU发现中断请求,中止当前程序后调用中断处理程序的过程,也称为CPU从一个程序状态向另一个程序状态的转移过程。

CPU响应中断需要满足的条件:智商为“1”状态,IM为“0”状态;

中断打开(即中断允许触发为“1”状态) ) ) ) ) )。

1指令执行后(指令周期结束后) ) ) ) ) ) ) )。

中断响应过程要完成中断响应,必须做好关闭中断、保护旧厂房、建设新厂房三件事

用中断中断中断指令完成(非指令系统的指令用硬件实现) )。

中断CPU内部有“中断许可触发器”。 该触发器设置为“1”可以打开中断。 设置为“0”可以响应中断。 如果设置为“0”,则无法响应中断。 中断CPU响应中断后,从一开始就变为“中断关闭”。 为什么?

在运行重要程序、保护现场或恢复现场时,CPU通常不希望外部干扰,因此关闭中断。 CPU响应中断后,必须保护旧现场,因此在保护现场前必须关闭中断。

注意:“关闭中断”命令只能断开的中断。 此外,还有一种类型的中断,称为非中断。 例如,如果电源关闭或设备发生故障,则是这种中断,一旦发生这种中断,CPU必须立即响应。 因此,不能通过“断开中断”进行切断。

问:如果CPU响应中断,它会关闭中断,那么外部更高级别的中断怎么办? 中断处理时进行响应

保护旧现场(PC内)程序的断点地址

(PSW中)断点处的状态信息

断点地址:程序中断处的下一个指令的地址

新建现场,为运行获得优先处理权的中断服务程序创造必要的环境

中断服务程序的入口地址PC

中断服务程序相关的状态标志状态字寄存器PSW

查找中断服务程序的入口地址:

硬件向量法(向量中断) ) ) )。

中断向量:服务程序的入口地址、服务程序的处理器状态字

向量地址:保存中断向量的地址、中断服务程序的条目地址的地址

向量中断:一种利用硬件线路形成中断源向量地址的方法

软件查询法

软件被编程为按照中断源的优先顺序进行查询

两者比较:

扩展:

向量中断------硬件提供中断服务程序的入口地址

非向量中断------软件提供中断服务程序的条目地址

向量中断:当CPU读取0x18上的IRQ中断指令时,自动读取与中断源的确认地址相对应的指令,并通过跳转指令,系统直接跳转到相应的地址函数,代替0x18的指令。

例如,如果ADC中断的向量地址为0xC0,则在0xC0中键入以下代码。

ldr PC,=HandlerADC;

发生ADC中断时,系统会自动跳转到HandlerADC函数处理中断

br> 非向量中断:当系统产生中断时,系统将INTPND寄存器中对应标志位置位,然后跳转到位于0x18处的统一中断函数中;该函数通过读取INTPND寄存器中对应标志位来判断中断源,并根据优先级关系再跳到对应中断源的处理代码中处理中断。

4. 中断处理

• 运行中断服务程序,一般做以下几件事情:
① 开中断:在保护旧现场前,CPU关了中断,旧现场已保护完,新现场已建立完,现在要运行服务程序,就要开中断,以便在运行服务程序时,能响应更高级别的中断请求(多级中断)
② 运行中断服务程序
③ 关中断
④ 恢复现场:将被中断程序的断点,状态字恢复,以备返回时用。

5. 中断返回

• 中断服务程序的最后一条指令,一般是一条中断返回指令,以便返回到被中断的程序继续运行。

例题

外部中断包括不可屏蔽中断(NMI)和可屏蔽中断,下列关于外部中断的叙述中错误的是:
A、CPU处于关中断状态时也能响应NMI请求;
B、一旦可屏蔽中断请求信号有效,CPU将立即响应;
C、不可屏蔽中断的优先级比可屏蔽中断的优先级高;
D、可通过中断屏蔽字改变可屏蔽中断的处理优先级。
答案:B

五、多重中断(中断嵌套) 1.实现多重中断的条件

①CPU响应中断后,再“开中断”,以备响应更高级别的中断请求
②只有优先级高的中断源才能中断优先级低的
• 要保证这一点,须使优先级别低的中断请求传不给CPU,只有优先级别高的才能传过来——屏蔽技术。

2.屏蔽技术

• 前面讲过,每一个中断源都有一个屏蔽触发器,每个屏蔽触发器合在一起,可以组成一个屏蔽寄存器,屏蔽寄存器的内容,叫一个屏蔽字。通过屏蔽字,可以看出中断源的处理优先级。

如:4个中断源,要求其中断处理顺序为1→2→3→4,屏蔽字如何设置?若要求其处理顺序为1→3→4→2,屏蔽字又如何设置?

3. 中断优先级的动态分配 优先级:

响应优先级:优先响应哪个中断请求(硬件排队)
处理优先级:优先执行哪个服务程序
• 硬件线路固定,响应优先级固定,要改变,只有改变硬件线路,而处理优先级可以通过屏蔽技术来改变,处理顺序可与响应次序一致,也可不一致,故屏蔽字提供一种手段,它能动态调度中断处理优先级的次序,使中断系统具有灵活性。

如:响应优先级:1→2→3→4 处理优先级:3→1→2→4CPU为主程序服务时,同时来了2、3的请求

例1:中断响应顺序1→2→3→4,CPU在为1服务时,来了2的请求,为2服务时,来了3的请求,依此类推。处理优先次序为:1→3→4→2,如何处理?

例2:机器共有4级中断,中断响应次序为1→2→3→4,处理次序为1→3→4→2,CPU在为中断1服务时,同时来了2、4的请求,在处理4未完时,又来了3的请求,画出中断过程示意图。

例3:机器共有4级中断,中断响应次序为1→2→3→4,若处理顺序为1→4→2→3,CPU在为1服务时,同时来了2、3、4的请求,画出中断过程示意图。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。