操作系统-保护模式下的中断的问题:关于硬件的中断对应的是哪个中断向量?

问题描述

保护模式下的中断的问题:关于硬件的中断对应的是哪个中断向量?

就是硬件产生中断时,向8259a产生中断信号,然后8259a向CPU发出中断信息,并产生相应的中断向量,然后cpu可以从中读取该中断向量,然后调用相应的中断处理程序,这个调用是在中断描述符表中根据根据 中断向量 * 8 的偏移地址来。

假如上面说法正确(不知道自己理解对不对),那么硬件对应的中断向量是不是固定的?
因为我看到书上的 实时时钟中断 它就是直接对应的是0x70的中断向量(没有设置,中断描述符直接放置在IDT中0x70 * 8的偏移位置上)

如果是固定的,那么怎么可以知道硬件相应的中断向量是什么?
在网上各种搜没搜出来。。。

如果不是固定的,那怎么设置硬件对应的中断向量?
也没搜出结果来,搜到的基本都是把原来中断向量的0x8-0xf改为0x20-0x27,但并没有提及硬件与中断向量号的对应

对硬件不熟悉,真心不知怎么搞。。。

解决方案

如果你用的是x86,可以参考Intel的文档Intel 64 and IA-32 Architectures Software Developer Manuals。里面有中断的详细描述。
简单的说就是Intel构架的CPU里有个Interrupt Descriptor Table (IDT),就是类似这个中断向量表。用LIDT (Load IDT)和SIDT (Store IDT)指令分别可以读取或者存入IDT数据。

时间: 2024-11-02 07:52:21

操作系统-保护模式下的中断的问题:关于硬件的中断对应的是哪个中断向量?的相关文章

保护模式汇编系列之二 - 中断和异常处理

如果你对中断是什么都不清楚的话,还是先Google一下中断的定义和基本概念吧,这里给出一个链接: http://zh.wikipedia.org/zh/%E4%B8%AD%E6%96%B7 好了,看完了这个链接,我想你已经大致明白了什么是中断,还有中断的作用了吧?我们再来总结下,其实简单说中断就是一种通知机制罢了.我们知道操作系统的一个核心任务就是和连接在主板上的所有的硬件设备进行通信,但是CPU和这些外设的速率根本就不在一个数量级上,倘若CPU向某一个设备发出一个请求并且一直等待反馈结果的话,

Linux操作系统基础(四)保护模式内存管理(2)【转】

转自:http://blog.csdn.net/rosetta/article/details/8570681 Linux操作系统基础(四)保护模式内存管理(2) 转载请注明出处:http://blog.csdn.net/rosetta           本节主要讲:保护模式内存管理相关的物理地址空间,逻辑和线性地址空间,段选择符,段寄存器,段描述符. 物理地址空间          保护模式下,IA-32架构提供了一个4GBytes(2^32bytes)正常大小的物理寻址空间.处理器可以使用

深入理解计算机系统-之-内存寻址(二)--存储保护机制(CPU实模式与保护模式)

cpu的保护模式由来 分段机制 8086的诞生,标志着Intel 正式进入了x86时代,这是个多么具有纪念意义的日子:1978-6-8.同时,8086的诞生也是处理器内存寻址技术的第一次飞跃. 对于一根实际的.实实在在的.物理的.可看得见.摸得着的内存条而言,处理器把它当做8位一个字节的序列来管理和存取,每一个内存字节都有一个对应的地址,我们叫它物理地址,用地址可以表示的长度叫做寻址空间.而CPU是如何去访问内存单元里的数据的方式就叫做寻址. 8086得CPU在内存寻址方面第一次引入了一个非常重

保护模式汇编系列之一 - 初探保护模式

为了后面学习操作系统的需要,从今天开始我要研究x86的汇编了.所以我决定开始总结并连载x86的汇编系列,这是第一篇--初探保护模式. 我假定读者接触过16位的汇编语言,并理解汇编语言的基本概念.熟悉8086处理器采用的"段寄存器 * 16 + 偏移地址"的寻址方法. 我们从80386处理器入手.首先,到了80386时代,CPU有了三种运行模式,即实模式.保护模式和虚拟8086模式. 实模式指的是8086CPU的运行模式,不过这是后来提出的概念,在8086时代只有当时的运行模式,自然也就

实模式/保护模式,GDT/LDT的含义

1.实模式.保护模式CPU启动时有两种模式,分别是:实模式 和 保护模式 实模式:不能使用多线程.不能实现权限分级.还不能访问20位以上地址线,也就是说只能访问1M内存(!!!)地址转换公式是:物理地址 = 线性地址 = 段地址*16 + 段偏移 保护模式:操作系统(system模块中的head.s程序)接管CPU后,会使CPU进入保护模式. 包括CPU权限分级. 多任务,内存分页等各种功能. 2.地址转换步骤 地址转换:查全GDT--> 查LDT --> 找到段(确定段基址) -->

如何实现Oracle DG最大保护模式

实现最大保护模式,可以先实现最大性能模式,然后再转换为最大保护模式. 一.三种保护模式 最大性能(maximize performance):这是data guard默认的保护模式.primay上的事务commit前不需要从standby上收到反馈信息,该模式在primary故障时可能丢失数据,但standby对primary的性能影响最小. 最大可用(maximize availability):在正常情况下,最大可用模式和最大保护模式一样:在standby不可用时,最大可用模式会自动降低成最

win8系统怎么开启或关闭IE保护模式

  ie保护模式是什么? IE浏览器的保护模式是是类似用户帐号控制(UAC)的一种安全功能.在保护模式下,通过限制运行在IE进程下的代码不能修改系统部分文件,从而来保护计算机的安全.这样,即使一个恶意网页利用了IE或IE插件中的一个代码注入漏洞,注入的代码也不能够对系统造成破坏. 具体步骤: 1.在IE命令栏或右上角点击"工具"按钮,选择"Internet选项"; 2.选择"安全"选项卡,勾选"启用保护模式","确定

汇编-在保护模式的无特权级变换的转移

问题描述 在保护模式的无特权级变换的转移 在保护模式下采用 JMP 和 RETF 指令进行任务内无特权级变换的转移.最好是能给出程序和说明,而不是到处引用,新手勿扰. 解决方案 用 JUMP.CALL.RETF等指令进行相应段的转移.在用到 CALL 指令时,使用堆栈,以使得在调用 CALL时,系统对 CALL 当前的程序运行点进行压栈保存,在遇到 RETF 返回指令时,进行弹栈返回. 解决方案二: (1)实模式下的初始化,包括对GDT和演示任务LDT的初始化,装载GDTR:(2)从实模式切换到

cpu工作模式问题,保护模式

问题描述 cpu工作模式问题,保护模式 1.为什么用汇编写的16位程序在windows下运行总是一闪而过,必须进入command命令行才能运行? 是因为windows工作在保护模式下,而命令行是虚拟8086模式? 2.windows系统中如何切换到实模式下,windows提供软件进行切换吗?还是根本就不能切换, 只能切换到虚拟模式,必须通过汇编程序从保护模式切换到实模式. 3.80386的保护模式编程是不是直接可以在windows下运行调试,而不用进入命令行工具