TRAP,软件中断和硬件中断之间的区别?

问题描述:

我只是想知道它们之间的基本区别。TRAP,软件中断和硬件中断之间的区别?

我发现在一些地方,TRAP本质上也被称为软件中断,或类似的异常。

软件中断和异常之间的基本区别是什么?

软件中断可以通过INT指令产生,但TRAP只能通过某些情景产生,如被零除?是对的吗?

请给这个查询给出一个合适的答案,它涵盖了s/w中断陷阱和异常。

+0

我们不是查询地点或讨论网站。 – Olaf

+0

卡车或卡车,大括号或吊带,度假或假期。当然,我们可以添加其他人。一家公司的一组人使用一个或一组术语。陷阱,异常,中断等数据表,数据手册,参考手册,用户手册,程序员参考手册,技术参考手册等。不要太过于挂上特定的词,只是在脑海中翻译,别人会问你在哪里厕所你把他们指向厕所。 –

+0

在阅读特定数据表或某些命名手册时,使用上下文周围的上下文,可以发现芯片供应商或手动作者正在使用某个特定术语,并希望贯穿始终。你会看到arm例如使用异常和中断,一些异常来自外设(外部到核心)中断,有些是内部像未定义的指令,所以在这种情况下它们都是由异常表地址处理的异常cortex-m),但有些来自硬件中断。 –

术语确实有点模糊,可能取决于CPU供应商。

很明显,硬件中断是由硬件信号触发的,并使CPU输入预定义的ISR。这些是由(通常是外部)硬件触发的异常。

陷阱的符号在CPU厂商之间有所不同。非英特尔CPU 上的陷阱可以是(例如,在68000或PowerPC CPU上)为软件中断。这些CPU具有TRAP指令。在x86上,该指令将在PowerPC TRAP #xx上的ARM CPU SWI/SVC上为INT xxx。这将是一个用户程序(通常用于进入操作系统)

陷阱在英特尔全球故意引发一个例外是得天独厚的条件,如除以零或其他错误,如无效的内存访问(但也可能由一组单步标志触发)。其他CPU供应商只是称其为例外。这些异常通常由CPU在正常程序流程期间无法处理的错误程序或条件触发。

并且它们通常都被称为例外

+0

感谢您的回复,这是丰富的,但是我想指出一个意见上的变化。软件中断和TRAP都是例外,但软件中断是由软件引起的中断,通常由通过用户模式创建的程序INT指令或其他指令,而TRAP是用户进程中的异常。这是由零除或内存访问无效造成的。这也是调用内核例程(系统调用)的常用方式,因为它们的优先级高于用户代码。 –

+0

@Emil。托马斯(我不知道我写了不同的东西)这是英特尔的术语。然而,正如答案中指出的那样,还有其他人。你评论的最后部分很奇怪。指令不会被执行*具有优先权*但是,它们可能会将处理器状态提升到更高的权限级别,这可能会导致可以访问更多/其他内存和I/O(如INT),而不会触发例外。 – tofro