CPU的外中断

CPU其实除了可以执行指令,进行运算之外还可以对外部设备进行控制,能接收它们的输入,向它们进行输出,也就是说CPU除了有运算能力还应该有I/O的能力,就比如说我们按下键盘上的一个键,CPU要对它进行处理,就比如说我们在屏幕上看到的出现的’a’其实就是CPU将从键盘上输入的键所对应的字符送到显示器上的

在PC系统的接口卡和主板上,装有各种接口芯片,这些外设接口芯片的内部是有若干个寄存器的,CPU会将这些寄存器当作是端口来访问的

其实外设的输入不是直接送入内存和CPU当中的,而是送入相关的接口芯片的端口当中的,CPU向外设的输出也不是直接送入到外设当中的,而是先送入到端口中,然后再由相关的芯片送到外设当中,CPU还可以向外设输出控制指令,而这些控制指令其实也是会先送到相关芯片的端口当中,然后再由相关的芯片根据指令去对外设进行控制

当CPU的内部有需要处理的事情发生的时候,其实就会产生中断信息,引发中断的过程,这种信息来自于CPU的内部,当然还有一种中断信息就是来自于CPU的外部,当CPU的外部有需要处理的事情发生的时候,就比如说外设输入到达,相关的芯片就会向CPU发出的相关的中断信息,CPU在执行完当前的指令之后,可以检测到发送过来的中断信息,引发中断过程,处理外设的输入

外部中断可以分为下面两种

  • 1、可屏蔽中断
  • 2、不可屏蔽中断

对于可屏蔽的中断就是指CPU可以不响应的外中断,CPU是否响应可屏蔽中断,要看标志寄存器的IF位的设置,当CPU检测到可屏蔽的中断信息的时候,如果IF=1,那么CPU在执行完当前的指令后响应中断,会去引发中断过程,如果IF=0,则不响应可屏蔽的中断

如果我们在中断处理程序当中需要去处理可屏蔽的中断,我们可以用指令sti将IF设置为1,这样的话就表示CPU在执行完当前指令后响应中断,引发中断过程,如果我们用指令cli,设置IF=0,那么就不响应可屏蔽中断

对于不可屏蔽的中断的话是CPU必须去响应的外中断,当CPU检测到不可屏蔽的中断信息的时候,则会在执行完当前指令之后,立即去响应,引发中断过程

一般来说几乎所有的外设引发的外中断其实就是可屏蔽中断,当外设有需要处理的事件发生的时候,相关的芯片就会向CPU发出可屏蔽中断信息,不可屏蔽中断是在系统当中有必须处理的紧急状况发生的时候用来通知CPU的中断信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值