不理解软件中断。求大家给解释下。

2019-03-24 14:07发布

看到软件中断的定义:人们通常用相应的指令来使CPU相应中断,CPU只要执行这种指令就会转入相应的中断服务程序执行,以完成相应的中断操作。
这看起来怎么像是在一个程序中调用另外一个子程序啊?          软件中断和程序之间的调用有什么区别啊?

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
wstrom
2019-03-25 04:13
这要先理解函数调用和软中断的概念
函数调用:一个函数执行过程中需要另外一个函数的功能时执行调用,函数调用时将返回地址和CPU状态寄存器内容压栈,当函数执行完毕后弹出上述压栈的内容并回到原函数继续执行
软中断:类似于中断,只是触发条件不是由硬件触发而是由用户调用的软中断指令触发。软中断产生时压栈的内容与函数调用相同,但是不是直接进入另外一个函数的入口,而是进入中断向量表中查询应该执行的程序PC指向。同时根据需要修改CPU的特权级别。目的是为了保护系统资源被用户程序非法使用。
所以函数调用和软中断调用的区别是,软中断多了修改特权级和查找中断向量表的功能,其他部分完全一样。
一般软中断的使用主要是为了使用户程序进入系统级的函数,如果不是这样就没有必要使用软中断

一周热门 更多>

相关问题

    相关文章