x86架构:实模式下的中断】的更多相关文章

https://www.cnblogs.com/Philip-Tell-Truth/p/5317983.html   这里有详细的过程说明.文字很多,为了方便阅读和理解,提炼了一些要点后归纳.整理了如下导图: 这次主要介绍实模式下的中断原理和demo示例:按照中断来源,分外部硬件中断.CPU内部中断和软中断. 1.外部硬件中断:可简单理解为和CPU关联的外部设备产生的中断: 非可屏蔽中断 (1)non maskable interupt,简称NMI.从字面上看,既然不可屏蔽,说明优先级最高,CP…
    第八章是一个非常重要的章节,讲述的是实模式下对硬件的访问(这一节主要讲的是硬盘),还有用户程序重定位的问题.现在整理出来刚好能和保护模式下的用户程序定位作一个对比. ★PART1:用户程序的重定位,硬盘的访问 1. 分段.段的汇编地址和段内汇编地址 NASM编译器使用汇编指令“SECTION”或者“SEGMENT”来定义段.他的一般格式是SECTION 段名称或者SEGMENT段名称(段名称不能重复),另外NASM对段没有数量的限制,一个程序可以有很多的代码段和数据段.Intel处理器要…
中断是处理器一个非常重要的工作机制.第9章是讲中断在实模式下如何工作,第17章是讲中断在保护模式下如何工作. ★PART1:外部硬件中断 外部硬件中断是通过两个信号线引入处理器内部的,这两条线分别叫NMI和INTR.处理器正在运行的时候会收到各种各样的中断,有些中断必须被处理,这就叫非屏蔽中断:有一些中断的处理优先级没有那么高,并且可以屏蔽,这就叫可屏蔽中断 1. 非屏蔽中断(Non Maskable Interrupt,NMI) 一旦处理器接受到NMI,说明处理器遇到了严重事件,这个时候必须无…
     站在用户角度考虑,一个合格的操作系统即使在单核下也能 "同时" 执行多个任务,这就要求CPU以非常快的频率在不同任务之间切换,让普通人根本感觉不到任务的切换.windwos和linux都有线程切换的方法,今天介绍cpu硬件自带的任务切换方案: 时钟中断 + TSS: 1.关于时钟中断,这里 https://www.cnblogs.com/theseventhson/p/13068709.html  有详细的说明.简单理解:cpu外部有专门负责根据时间间隔产生中断的芯片,每隔一…
说实话越计卷作者用了16页(我还是删过的),来讲怎么控制声卡,其实真正归纳起来就那么几点. ★PART1:直接存储访问 1. 总线控制设备(bus master) 在硬件技术不发达的早期,处理器是最重要的总线主控制设备,它有权决定谁参与总线数据传输.考虑代码片断:mov [0x2000],dx,在执行这条指令时,处理器不但发出地址信号,也发出控制信号,控制信号用来表明该地址是发给内存的,还是发给外部设备的.所有设备都有译码电路,这些译码电路的输入就是地址和控制信号.以上指令执行的时候,内存的译码…
整个代码对应内存线性地址分为四段,[gdt] [code32] [video32] [code16] 代码先在实模式[code16]下运行,code16中的cs就是系统分配的该程序物理地址的基址. 编译器会自动把其他段中的标号,编译成相对这个物理地址基址的偏移量. 其他段的物理真实地址就是这个基址+标号所表示的偏移量. label_begin  label_code32这些是标签,会编译成相对该程序物理地址基址的偏移量. 程序在内存中以二进制存在,cs指向程序在内存中开始的地方. Gdtptr…
★PART1:32位的x86处理器执行方式和架构 1. 寄存器的拓展(IA-32) 从80386开始,处理器内的寄存器从16位拓展到32位,命名其实就是在前面加上e(Extend)就好了,8个通用寄存器被命名为EAX,EBX,ECX,EDX,ESI,EDI,ESP和EBP,同样的,操作的时候必须要和寄存器的长匹配,比如下面的操作就是错的. 32位通用寄存器的高16位不可以单独使用,但是他们的低16位依然可以按照8086的使用方法一样使用.处理器在32位保护模式下可以使用全部的32条地址线,访问4…
详细的过程说明参考:(1)  https://www.cnblogs.com/Philip-Tell-Truth/p/5211248.html    (2)x86汇编:从实模式到保护模式 这里简化一下说说要点: 1. 生成并加载GDT表 实模式下任何进程可以无限制读写任何内存,甚至os的内存,毫无安全性可言:需要对用户进程读写内存的地址做严格限制,衍生出了保护模式:保护模式将内存分成不同的段,段基址.limit.各种属性存放在GDT表:用户程序读写段内存时需要先通过段寄存器的selector在G…
一.Intel 32 位处理器的工作模式 如上图所示,Intel 32 位处理器有3种工作模式. (1)实模式:工作方式相当于一个8086 (2)保护模式:提供支持多任务环境的工作方式,建立保护机制 (3)虚拟8086模式:这种方式可以使用户在保护模式下运行8086程序(比如cmd打开的console窗口,就是工作在虚拟8086模式) 有几点需要特别说明: (1)保护模式可分为16位和32位的,由段描述符中的D标志指明.对于32位代码段和数据段,这个标志总是设为1:对于16位代码和数据段,这个标…
80X86中断系统 能够处理256个中断 用中断向量号0-255区别 可屏蔽中断还需要借助专用中断控制器Intel 8259A实现优先权管理 1.中断的分类 中断可以分为内部中断和外部中断. (1)内部中断 除法错中断 指令中断 溢出中断 单步中断 断点中断 (2)外部中断 非屏蔽中断 可屏蔽中断 如果觉得上面的分类太抽象,那么下面的图会给你直观的印象. 通过这张图,我们可以明白,内部中断是在处理器内部产生.外部中断是通过两个信号线(NMI和INTR)引入处理器内部的. 2.内部中断 (1)除法…