Assembly 谁负责定义/设计计算机';谁打断了?

Assembly 谁负责定义/设计计算机';谁打断了?,assembly,interrupt,x86-16,bios,firmware,Assembly,Interrupt,X86 16,Bios,Firmware,我练习汇编已经有一段时间了,我在YouTube上看到一段视频,教你如何制作引导加载程序。在观看视频时,我的脑海中出现了一个问题,“int”是什么。我开始搜索,发现它是中断的缩写。我突然想到“什么是中断?”。我再次寻找并开始理解。然而,我很好奇中断是如何产生的,它们是如何产生的?。。。制造商自己制造中断吗?或者什么?注意:我假设“使用BIOS的旧80x86”,因为我认为这是最有可能的,而且它涵盖了大多数情况 什么是中断 一般而言;中断是指由特定事件(通常由CPU外部的硬件触发)触发的控制流更改(到

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

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

什么是中断

一般而言;中断是指由特定事件(通常由CPU外部的硬件触发)触发的控制流更改(到中断处理程序)。换句话说,它是一种干扰正常执行的东西。但是,在当前执行的代码不需要时(例如,基于外部信号)中断代码的能力要求能够确保中断软件的状态不会混乱,并且可以恢复;用于确保被中断软件的状态不会混乱的机制通常会被回收用于其他用途(软件可以/做的除外)

中断可分为3类:

  • IRQ。这些被设备用来请求注意。设备的每个设计者决定设备使用其IRQ/s的目的。通常还有一些IRQ控制器将信号(来自设备)转换成CPU可以理解的格式,并给它们一个中断号

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

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


  • int
    不一定是“中断”的缩写-它也是整型值的常见缩写。“制造商是自己制造中断的吗?”-是的。IBM+Intel设计了他们的中断集,而其他OEM(如康柏、惠普、戴尔等)复制了它们,因此出现了“100%IBM兼容PC”这一术语,这意味着PC具有与20世纪80年代中期的原始IBM PC相同的中断编号(和其他体系结构元素)。哦!谢谢为了得到答案!:DOh和我指的是int上的组装…噢!谢谢你的回答!:我现在甚至知道IRQ是什么了!谢谢可能还需要补充的是,电路板制造商还可以控制设备到芯片的布线。