【问题标题】:Who is Responsible for Defining/Designing a Computer's Interrupts?谁负责定义/设计计算机的中断?
【发布时间】:2021-01-14 15:55:34
【问题描述】:

我练习汇编已经有一段时间了,我在 YouTube 上看到了一个视频,它教你如何制作引导加载程序。在观看视频时,我的脑海中出现了一个问题,即“int”是什么。我开始搜索,发现是中断的缩写。我想到了“什么是中断?”。再一次,我搜索并开始发展一种理解。但是,我很好奇中断是如何产生的以及它们是如何产生的?......制造商是否会制作自己的中断?还是什么?

【问题讨论】:

  • int 不一定是“中断”的缩写 - 它也是整数类型值的常见缩写。
  • "制造商是不是自己制造中断?" - 对。 IBM + Intel 设计了他们的中断集,其他 OEM(如 Compaq、HP、Dell 等)复制了它们,因此称为“100% IBM 兼容 PC”,这意味着 PC 具有与原始计算机相同的中断编号(和其他架构元素) 1980 年代中期的 IBM PC。
  • 哦!谢谢!答案! :D
  • 哦,我指的是 int 上的汇编...

标签: assembly interrupt x86-16 bios firmware


【解决方案1】:

注意:我假设“带有 BIOS 的旧 80x86”,因为我认为这是最有可能的,而且它涵盖了大多数情况。

什么是中断?

一般;中断是导致由某个事件(通常由 CPU 外部的硬件触发)触发的控制流更改(到中断处理程序)的东西。换句话说,它会中断正常执行。然而,在不期望的情况下中断当前正在执行的代码的能力(例如,基于外部信号)需要能够确保被中断软件的状态不会被弄乱并且可以恢复;并且用于确保被中断软件的状态不会被弄乱的机制通常会被回收用于其他事情(该软件可以/做的除外)。

中断可以分为 3 类:

  1. IRQ。这些被设备用来引起注意。设备的每个设计者决定他们的设备使用它的 IRQ/s 做什么。通常,还涉及某种 IRQ 控制器,用于将信号(来自设备)转换为 CPU 可以理解的格式并给它们一个中断号。

  2. 例外。这些是由设计 CPU(例如 Intel)或 CPU 扩展的人设计的;并指示软件何时尝试执行 CPU 不能或不允许执行的操作(例如,除以零、访问当前无法访问的内存、软件尝试执行需要其没有权限的操作,等)

  3. 软件中断。这些被用作一种 API,软件可以使用它来要求其他软件做某事。谁设计了它们取决于哪个 API(例如,微软设计了 MS-DOS 使用的接口,Linux 内核开发人员在早期 Linux 中设计了int 0x80 API,等等)。对于旧版 BIOS;最初它是由 IBM 设计的(然后被其他人反向工程和克隆);但多年来,不同的团体创建了扩展原始 BIOS 的标准;像“int 0x13 extensions”(绕过旧“CHS”功能的“最大磁盘大小”限制),“El Toritio 可引导 CD 规范”(添加功能以使用 CD 模拟软盘和硬盘并管理它们) 、“VESA BIOS 扩展”(使软件更容易使用超 VGA/更高分辨率的视频卡)等。这些 BIOS 扩展大部分来自固件/BIOS 创建者(例如 Phoenix)、行业团体/委员会/标准化机构(例如 VESA、PCI 特殊利益集团等)或硬件制造商(例如英特尔)。

【讨论】:

  • 哦哦!感谢您的回答! :D 我现在什至知道什么是 IRQ!谢谢!
  • 可能会补充说,电路板制造商还可以控制设备到芯片的布线。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-09
  • 1970-01-01
  • 1970-01-01
  • 2012-10-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多