任务门,调用门,中断门,陷阱门

中断详解(二)——中断描述符、任务门、中断门、陷阱门 什么是中断描述符表     中断描述符IDT表示一个系统表,它与中断或异常向量相联系。每一个中断或异常向量在这个系统表中有对应的中断或异常处理程序入口地址。中断描述符的每一项对应一个中断或异常向量,每个向量由8个字节组成。因此,最多需要256*8=2048字节来存放IDT。     在运行中断之前,必须初始化IDT(中断描述符表)。 任务门、中断门、陷阱门     IDT包 阅读详情

每个任务有一个任务状态段TSS,用于保存任务的有关信息,在任务内变换特权级和任务切换时,要用到这些信息。为了控制任务内发生特权级变换的转移,为了控制任务切换,一般要通过控制门进行这些转移。本文将介绍任务状态段和控制门。

<一>系统段描述符

系统段是为了实现存储管理机制所使用的一种特别的段。在80386中,有两种系统段:任务状态段TSS和局部描述符表LDT段。用于描述系统段的描述符称为系统段描述符。

1.系统段描述符的格式

系统段描述符的一般格式如下表所示。

 

系统段
描述符
m+7m+6m+5m+4m+3m+2m+1m+0
Base(31...24)AttributesSegment Base(23...0)Segment Limite(15...0)

 

系统段
描述符
的属性
Byte m+6Byte m+5
BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0
GX0AVLLimit(19...16)PDPLDT0TYPE

 

与存储段描述符相比,它们很相似,区分的标志是属性字节中的描述符类型位DT的值。DT=1表示存储段,DT=0表示系统段。系统段描述符中的段基地址和段界限字段与存储段描述符中的意义完全相同;属性中的G位、AVL位、P位和DPL字段的作用也完全相同。存储段描述符属性中的D位在系统段描述符中不使用,现用符号X表示。系统段描述符的类型字段TYPE仍是4位,其编码及表示的类型列于下表,其含义与存储段描述符的类型却完全不同。

 

系统段
类   型
类型编码说       明
0未定义
1可用286TSS
2LDT
3忙的286TSS
4286调用门
5任务门
6286中断门
7286陷阱门
 
系统段
类   型
类型编码说       明
8未定义
9可用386TSS
A未定义
B忙的386TSS
C386调用门
D未定义
E386中断门
F386陷阱门

 

从上表可见,只有类型编码为2、1、3、9和B的描述符才是真正的系统段描述符,它们用于描述系统段LDT和任务状态段TSS,其它类型的描述符是门描述符。
利用前文定义的存储段描述符结构类型DESC仍能方便地在程序中说明系统段描述符。需要注意的是,系统段描述符的选择子不能用来读写系统段,要想读写系统段,必须使用别名技术。

2.LDT段描述符

LDT段描述符描述任务的局部描述符表段。例如:下面的描述符LDTABLE描述一个局部描述符表段,基地址是654321H,以字节为单位的界限是1FH,描述符特权级是0。
LDTABLE  DESC  <1FH,4321H,65H,82H,,>
LDT段描述符必须安排在全局描述符表中才有效。在装载LDTR寄存器时,描述符中的LDT段基地址和段界限等信息被装入LDT段描述符高速缓冲寄存器中。

3.任务状态段描述符

任务状态段TSS用于保存任务的各种状态信息。任务状态段描述符描述某个任务状态段TSS描述符分为286TSS和386TSS两类。TSS描述符规定了任务状态段的基地址和任务状态段的大小等信息。例如,下面的描述符TempTask描述一个可用的386任务状态段,基地址是123456H,以字节为单位的界限是104,描述符特权级是0。
TempTask  DESC  <104,3456H,12H,89H,,>
在装载任务状态段寄存器TR时,描述符中的段基地址和段界限等信息被装入到TR的高速缓冲寄存器中。在任务切换或执行LTR指令时,要装载TR寄存器。
TSS描述符中的类型规定:TSS要么为“忙”,要么为“可用”。如果一个任务是当前正执行的任务,或者是用TSS中的链接字段沿挂起任务链接到当前任务上的任务,那么该任务是“忙”的任务;否则该任务为“可用”任务。
利用段间转移指令JMP和段间调用指令CALL,直接通过TSS描述符或通过任务门可实现任务切换。

<二>门描述符

除存储段描述符和系统段描述符外,还有一类门描述符。门描述符并不描述某种内存段,而是描述控制转移的入口点。这种描述符好比一个同向另一代码段的门。通过这种门,可实现任务内特权级的变换和任务间的切换。所以,这种门描述符也称为控制门。

1.门描述符的一般格式

门描述符的一般格式如下图所示。门描述符只有位于描述符内偏移5的类型字节与系统段保持一致,也由该字节标示门描述符和系统段描述符。该字节内的P和DPL的意义与其它描述符种中的意义相同。其它字节主要用于存放一个48位的全指针(16位的选择子和32位的偏移量)。

 

门描述符m+7m+6m+5m+4m+3m+2m+1m+0
Offset(31...16)AttributesSelectorOffset(15...0)

 

门描述
符属性
Byte m+5Byte m+4
BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0
PDPLDT0TYPE000Dword Count

 

根据上图给出的门描述符的结构,可定义如下的门描述符结构类型:
GATE     STRUC      ;门结构类型定义
    OFFSETL  DW      0  ;32位偏移的低16位
    SELECTOR DW      0  ;选择子
    DCOUNT   DB      0  ;双字计数字段
    GTYPE    DB      0  ;类型
    OFFSETH  DW      0  ;32位偏移的高16位
    GATE     ENDS
利用门描述符结构类型GATE能方便地在程序中说明门描述符。
例如,下面的门描述符SUBRG描述一个386调用门,门内的选择子是10H,入口偏移是123456H,门描述符特权级是3,双字计数是0。
SUBRG    GATE  <3456,10H,,8CH+60H,12H>
从上述描述符类型的列表中可见,门描述符又可分为:任务门、调用门、中断门和陷阱门,并且除任务门外,其它描述符还各分成286和386两种。

2.调用门

调用门描述某个子程序的入口。调用门内的选择子必须实现代码段描述符,调用门内的偏移是对应代码段内的偏移。利用段间调用指令CALL,通过调用门可实现任务内从外层特权级变换到内层特权级。
在上图所示的门描述符内偏移4字节的位0至位4是双字计数字段,该字段只在调用门描述符中有效,在其它门描述符中无效。主程序通过堆栈把入口参数传递给子程序,如果在利用调用门调用子程序时引起特权级的转换和堆栈的改变,那么就需要将外层堆栈中的参数复制到内层堆栈。该双字计数字段就是用于说明这种情况发生时,要复制的双字参数的数量。

3.任务门

任务门指示任务。任务门内的选择子必须指示GDT中的任务状态段TSS描述符,门中的偏移无意义。任务的入口点保存在TSS中。利用段间转移指令JMP和段间调用指令CALL,通过任务门可实现任务切换。

4.中断门和陷阱门

中断门和陷阱门描述中断/异常处理程序的人口点。中断门和陷阱门内的选择子必须指向代码段描述符,门内的偏移就是对应代码段的人口点的偏移。中断门和陷阱门只有在中断描述符表IDT中才有效。关于中断门和陷阱门的区别将在以后的文章中论述。

<三>任务状态段

任务状态段(Task State Segment)是保存一个任务重要信息的特殊段。任务状态段描述符用于描述这样的系统段。任务状态段寄存器TR的可见部分含有当前任务的任务状态段描述符的选择子,TR的不可见的高速缓冲寄存器部分含有当前任务状态段的段基地址和段界限等信息。
TSS在任务切换过程中起着重要作用,通过它实现任务的挂起和恢复。所谓任务切换是指,挂起当前正在执行的任务,恢复或启动另一任务的执行。在任务切换过程中,首先,处理器中各寄存器的当前值被自动保存到TR所指定的TSS中;然后,下一任务的TSS的选择子被装入TR;最后,从TR所指定的TSS中取出各寄存器的值送到处理器的各寄存器中。由此可见,通过在TSS中保存任务现场各寄存器状态的完整映象,实现任务的切换。
任务状态段TSS的基本格式如下图所示。

 

任

务

状

态

段

基

本

部

分

的

格

式
BIT31—BIT16BIT15—BIT1BIT0Offset
0000000000000000链接字段0
ESP04
0000000000000000SS08
ESP10CH
0000000000000000SS110H
ESP214H
0000000000000000SS218H
CR31CH
EIP20H
EFLAGS24H
EAX28H
ECX2CH
EDX30H
EBX34H
ESP38H
EBP3CH
ESI40H
EDI44H
0000000000000000ES48H
0000000000000000CS4CH
0000000000000000SS50H
0000000000000000DS54H
0000000000000000FS58H
0000000000000000GS5CH
0000000000000000LDTR60H
I/O许可位图偏移000000000000000T64H

 

从图中可见,TSS的基本格式由104字节组成。这104字节的基本格式是不可改变的,但在此之外系统软件还可定义若干附加信息。基本的104字节可分为链接字段区域、内层堆栈指针区域、地址映射寄存器区域、寄存器保存区域和其它字段等五个区域。

1.寄存器保存区域

寄存器保存区域位于TSS内偏移20H至5FH处,用于保存通用寄存器、段寄存器、指令指针和标志寄存器。当TSS对应的任务正在执行时,保存区域是未定义的;在当前任务被切换出时,这些寄存器的当前值就保存在该区域。当下次切换回原任务时,再从保存区域恢复出这些寄存器的值,从而,使处理器恢复成该任务换出前的状态,最终使任务能够恢复执行。
从上图可见,各通用寄存器对应一个32位的双字,指令指针和标志寄存器各对应一个32位的双字;各段寄存器也对应一个32位的双字,段寄存器中的选择子只有16位,安排再双字的低16位,高16位未用,一般应填为0。

2.内层堆栈指针区域

为了有效地实现保护,同一个任务在不同的特权级下使用不同的堆栈。例如,当从外层特权级3变换到内层特权级0时,任务使用的堆栈也同时从3级变换到0级堆栈;当从内层特权级0变换到外层特权级3时,任务使用的堆栈也同时从0级堆栈变换到3级堆栈。所以,一个任务可能具有四个堆栈,对应四个特权级。四个堆栈需要四个堆栈指针。
TSS的内层堆栈指针区域中有三个堆栈指针,它们都是48位的全指针(16位的选择子和32位的偏移),分别指向0级、1级和2级堆栈的栈顶,依次存放在TSS中偏移为4、12及20开始的位置。当发生向内层转移时,把适当的堆栈指针装入SS及ESP寄存器以变换到内层堆栈,外层堆栈的指针保存在内层堆栈中。没有指向3级堆栈的指针,因为3级是最外层,所以任何一个向内层的转移都不可能转移到3级。
但是,当特权级由内层向外层变换时,并不把内层堆栈的指针保存到TSS的内层堆栈指针区域。实际上,处理器从不向该区域进行写入,除非程序设计者认为改变该区域的值。这表明向内层转移时,总是把内层堆栈认为是一个空栈。因此,不允许发生同级内层转移的递归,一旦发生向某级内层的转移,那么返回到外层的正常途径是相匹配的向外层返回。

3.地址映射寄存器区域

从虚拟地址空间到线性地址空间的映射由GDT和LDT确定,与特定任务相关的部分由LDT确定,而LDT又由LDTR确定。如果采用分页机制,那么由线性地址空间到物理地址空间的映射由包含页目录表起始物理地址的控制寄存器CR3确定。所以,与特定任务相关的虚拟地址空间到物理地址空间的映射由LDTR和CR3确定。显然,随着任务的切换,地址映射关系也要切换。
TSS的地址映射寄存器区域由位于偏移1CH处的双字字段(CR3)和位于偏移60H处的字字段(LDTR)组成。在任务切换时,处理器自动从要执行任务的TSS中取出这两个字段,分别装入到寄存器CR3和LDTR。这样就改变了虚拟地址空间到物理地址空间的映射。
但是,在任务切换时,处理器并不把换出任务但是的寄存器CR3和LDTR的内容保存到TSS中的地址映射寄存器区域。事实上,处理器也从来不向该区域自动写入。因此,如果程序改变了LDTR或CR3,那么必须把新值人为地保存到TSS中的地址映射寄存器区域相应字段中。可以通过别名技术实现此功能。

4.链接字段

链接字段安排在TSS内偏移0开始的双字中,其高16位未用。在起链接作用时,地16位保存前一任务的TSS描述符的选择子。
如果当前的任务由段间调用指令CALL或中断/异常而激活,那么链接字段保存被挂起任务的 TSS的选择子,并且标志寄存器EFLAGS中的NT位被置1,使链接字段有效。在返回时,由于NT标志位为1,返回指令RET或中断返回指令IRET将使得控制沿链接字段所指恢复到链上的前一个任务。

5.其它字段

为了实现输入/输出保护,要使用I/O许可位图。任务使用的I/O许可位图也存放在TSS中,作为TSS的扩展部分。在TSS内偏移66H处的字用于存放I/O许可位图在TSS内的偏移(从TSS开头开始计算)。关于I/O许可位图的作用,以后的文章中将会详细介绍。
在TSS内偏移64H处的字是为任务提供的特别属性。在80386中,只定义了一种属性,即调试陷阱。该属性是字的最低位,用T表示。该字的其它位置被保留,必须被置为0。在发生任务切换时,如果进入任务的T位为1,那么在任务切换完成之后,新任务的第一条指令执行之前产生调试陷阱。

6.用结构类型定义TSS

根据上图给出的任务状态段TSS的结构,可定义如下的TSS结构类型:
;----------------------------------------------------------------------------
;任务状态段结构类型定义
;----------------------------------------------------------------------------
TSS             STRUC
TRLink          DW      0      ;链接字段
                DW      0      ;不使用,置为0
TRESP0          DD      0      ;0级堆栈指针
TRSS0           DW      0      ;0级堆栈段寄存器
                DW      0      ;不使用,置为0
TRESP1          DD      0      ;1级堆栈指针
TRSS1           DW      0      ;1级堆栈段寄存器
                DW      0      ;不使用,置为0
TRESP2          DD      0      ;2级堆栈指针
TRSS2           DW      0      ;2级堆栈段寄存器
                DW      0      ;不使用,置为0
TRCR3           DD      0      ;CR3
TREIP           DD      0      ;EIP
TREFlag         DD      0      ;EFLAGS
TREAX           DD      0      ;EAX
TRECX           DD      0      ;ECX
TREDX           DD      0      ;EDX
TREBX           DD      0      ;EBX
TRESP           DD      0      ;ESP
TREBP           DD      0      ;EBP
TRESI           DD      0      ;ESI
TREDI           DD      0      ;EDI
TRES            DW      0      ;ES
                DW      0      ;不使用,置为0
TRCS            DW      0      ;CS
                DW      0      ;不使用,置为0
TRSS            DW      0      ;SS
                DW      0      ;不使用,置为0
TRDS            DW      0      ;DS
                DW      0      ;不使用,置为0
TRFS            DW      0      ;FS
                DW      0      ;不使用,置为0
TRGS            DW      0      ;GS
                DW      0      ;不使用,置为0
TRLDTR          DW      0      ;LDTR
                DW      0      ;不使用,置为0
TRTrip          DW      0      ;调试陷阱标志(只用位0)
TRIOMap         DW      $+2    ;指向I/O许可位图区的段内偏移
TSS             ENDS

 

参考资料书         名出   版   社作     者
《保护方式下的80386及其编程》清华大学出版社周明德主编
《80X86汇编语言程序设计教程》清华大学出版社扬季文主编

 


时间卷积网络(TCN):结构+pytorch代码 文章目录TCNTCN结构1-D FCN的结构因果卷积(Causal Convolutions)膨胀因果卷积(Dilated Causal Convolutions)膨胀非因果卷积(Dilated Non-Causal Convolutions)残差块结构pytorch代码讲解 TCN   TCN(Temporal Convolutional Network)是由Shaojie Bai et al.... 阅读详情

相关推荐

Android 13 录音APK在后台无数据的处理

未获取到录音数据

chenchen4310的博客 1182

80x86保护模式系列教程(5)任务状态段和控制门

五.任务状态段和控制门每个任务有一个任务状态段TSS,用于保存任务的有关信息,在任务内变换特权级和任务切换时,要用到这些信息。为了控制任务内发生特权级变换的转移,为了控制任务切换,一般要通过控制门进行这些转移。本文将介绍任务状态段和控制门。 系统段描述符系统段是为了实现存储管理机制所使用的一种特别的段。在80386中,有两种系统段:任务状态段TSS和局部描述符表LDT段。用于描述系

Liang Tang's 专栏 2919

从零开始安装 Windows 11 和 Ubuntu 22.04 双系统

本文详解Windows与Ubuntu 22.04双系统安装流程:需提前确认BIOS模式(UEFI/GPT或Legacy/MBR),关闭BitLocker加密、设备加密及快速启动;推荐Rufus/Ventoy制作启动盘。安装时需规划分区方案(建议单独划分EFI系统分区),注意引导器安装位置选择。双系统启动通过BIOS引导顺序管理,安装后需同步Windows与Linux系统时间。教程适配主流UEFI+GPT设备,强调操作前数据备份及Windows更新策略调整,避免兼容性问题。

萑澈的博客 3765

中断门、陷阱门、任务段、任务门

中断门描述符 中断门概述 1.系统调用 Windows没有使用调用门,但是使用了中断门。 Windows很多3环API最终都要使用0环的代码,是使用中断门实现的这种功能。 注意:老的CPU是用的中断门而最新的CPU是使用的快速调用。 2.调试 在像OD这种调试工具中按F12下的断点就是将BYTE内容变为0xCC指令位int3这是中断门效果。 中断门和调用门的区别 中断门和调用门很相似他们最大的区别是查表的不同, 调用门是使用的GDT表而中断门使用的是IDT表。 IDT表概述 IDT全名中断描述符表,

网络安全相关文章分享 5426

UniApp 与 Taro 深度解析:如何根据项目需求选择最佳跨平台框架?

本文深度对比了UniApp和Taro两大主流跨平台开发框架。UniApp基于Vue生态,提供开箱即用的高效开发体验,尤其适合快速覆盖多端小程序;Taro则根植React范式,架构灵活,便于与现有React生态集成,更适合对性能和原生体验有高要求的复杂项目。文章结合团队技术栈、项目类型及性能需求,为开发者提供了清晰的选型指南。

snow3的博客 204

描述符链表(Descriptor Chain)是什么?

描述符链表是硬件加速数据传输的核心数据结构,通过链式描述符(包含地址、长度、控制标志等)实现DMA自动批量处理,显著降低CPU负载。其工作原理为:CPU初始化链表后,硬件按序处理每个描述符,完成自动跳转与中断通知。在网卡收包、NVMe存储等场景中应用广泛,优势包括批处理、低延迟和灵活调度。需注意内存对齐、缓存一致性等实现细节,优化手段包括预分配描述符池、环形缓冲区等。该技术是网络/存储领域提升吞吐量的关键方案。

guigenyi的专栏 773

【2021.03.24】任务门

要点回顾 前文中讲解了如何通过CALL、JMP指令访问任务段。 本文主要介绍如何通过任务门访问任务段。 既然已经可以通过JMP、CALL访问任务段了,那么为什么还要有任务门呢? IDT(中断描述符表) IDT表可以包含3种门描述符: 任务门描述符。 中断门描述符。 陷阱门描述符。 任务门描述符 注意: TYPE位现在应该是5(任务门)。前文提过,当为9或B的时候代表什么。 低4字节16-31位存储的是一个TSS段的描述符选择子。既不是地址也不是偏移,而是TSS段的描述符。 任

oalken的博客 806

手把手教你使用 YOLOv11/v8 算法 + PaddleOCR 算法完成车牌检测和车牌识别系统,AI智能体,毛玻璃系统,包括PaddlePaddle安装、数据集预处理、模型训练、AI大模型应用等

手把手教你使用 YOLOv11/v8算法 + PaddleOCR算法完成车牌检测和车牌识别系统,AI智能体,毛玻璃系统,包括PaddlePaddle安装、数据集预处理、模型训练、AI大模型应用等。车牌识别系统支持 蓝牌、绿牌、黄牌、双层车牌等车牌识别。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 2781

Windows保护模式(五)任务段&任务门

call 加载 TSS 的指令格式为call 16位TSS段选择子:无效EIP,因此可以在 GDT 中构造一个段选择子然后指向自己构造的 TSS 然后 call 过去。利用 call 指令进行 TSS 加载时会将 EFLAGS 寄存器中的 NT 位置 1 ,表示中断嵌套,根据 NT 位是否为 1,iretd 返回时会选择根据 Previous Task Link 选择 TSS 还是根据堆栈返回。如果在切换任务函数中使用了int 3断点会将 NT 位置 0 导致返回时根据堆栈返回触发蓝屏。

sky123博客 2167

YOLOv8目标出入计数部署:讲解C#使用ONNX检测模型进行目标出入计数 可运行完整实例

代码、步骤、讲解完整,可一键运行,效果如下:车辆出入计数人员出入计数。

Limiiiing的博客 79

Visual Studio调试技巧与实用方法总结(实战经验分享)

本文根据多年的项目实战经验,详细介绍一些Visual Studio常用的高效调试手段与技巧。

dvlinker的技术专栏 3万+

任务门、中断门、陷阱门和调用门

一.任务门、中断门、陷阱门和调用门的结构图 1.任务门结构图如下所示: 阴影部分表示空闲不用;P标志位,为1时表示在内存中;DPL描述优先级别;类型码101表示任务门。 2.中断门、陷阱门和调用门结构图如下所示: D标志位,1=32位,0=16位;类型码中,110:中断门,111:陷阱门,100,调用门。 二.四种门之间的区别和联系 1.任务门和其他三种门相比,在任务门...

weixin_30344131的博客 643

【华为OD机试真题】6、数组去重和排序 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)

题目描述 >给定一个乱序的数组,删除所有的重复元素,使得每个元素只出现一次,并且按照出现的次数从高到低进行排序,相同出现次数按照第一次出现顺序进行先后排序

KJ.JK 3888

中断门、陷阱门、调用门、任务门

在nt平台下,普通应用程序运行在ring3下,操作系统运行于ring0。如果在程序中需要执行一些特权指令的话,程序必须转入到ring0。由于用户程序执行特权指令可能会破坏系统资源,故出于保护和稳定的目的,操作系统通过“门”机制向用户态程序提供必要的服务。在x86种有四种门:中断门、陷阱门、调用门、任务门,这些是cpu从硬件层提供的支持。这四个门就是让CPU找到到哪里去执行异常或中断的处理代码,是中...

weixin_34348174的博客 485

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

中断门&陷阱门&任务门&任务段

JMP FAR和CALL FAR可以通过段选择子找到对应的GDT段描述符,当DPL=11可以在3环使用,IDT全名中断描述符表,同GDT表一样,IDT也是由一系列描述符组成的,每个描述符占8个字节,LTR指令必须运行在0环,LTR指令只修改TR段寄存器,并不会触发TSS进行全部寄存器值切换。Windows很多3环API最终都要使用0环的代码,是使用中断门实现的这种功能。使用JMP FAR实现任务切换时,TSS结构体中的Link值在任务切换之后为0。Windows没有使用调用门,但是使用了中断门。

moonlightsunshin的博客 629

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

任务门,调用门,中断门,陷阱门 [转]

每个任务有一个任务状态段TSS,用于保存任务的有关信息,在任务内变换特权级和任务切换时,要用到这些信息。为了控制任务内发生特权级变换的转移,为了控制任务切换,一般要通过控制门进行这些转移。本文将介绍任务状态段和控制门。 &lt;一&gt;系统段描述符 系统段是为了实现存储管理机制所使用的一种特别的段。在80386中,有两种系统段:任务状态段TSS和局部描述符表LDT段。用于描述系统段的描述符称...

weixin_33957648的博客 361

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

中断描述符表描述符:任务门,中断门,陷阱门(调用门)

摘自《Intel® 64 and IA-32 Architectures Software Developer’s Manual Combined Volumes1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D and 4》 《Intel 中断和异常处理 - 目录》 先看一下调用门:

RToax 818

门描述符

门,顾名思义,是通往某处的入口。在计算机中,用门来表示一段程序的入口。拿它和段描述符对比 一下就容易理解了,段描述符中描述的是一片内存区域,而门描述符中描述的是一段代码。 门描述符中的各属性位与段描述符中的属性意义相同,大伙可以参考全局描述符表部分的介绍。下面 简要说下这几种门描述符,这里咱们只讨论 32 位保护模式。 任务门 任务门和任务状态段TSS是 Intel 处理器在硬件一级提供的任务切换机制,所以任务门需要和 TSS 配合在一起使用,在任务门中记录的是 TSS 选择子,偏移量未使用。

qq_43811102的博客 1371

linux 硬件介绍,Linux硬件-门描述符

在I386CPU中,除了段描述符之外还有一种描述符叫做门描述符,它们并不描述某种内存段,而是描述控制转移的入口点,也就是目标代码的门。通过这种门可以实现特权级的转变和任务的切换。门描述符主要由两部分组成:选择子、偏移地址以及DPL。门描述符共有四种:调用门描述符、任务门描述符、中断门描述符和陷阱门描述符。一、调用门描述符调用门一般用在特权级的切换,存在于GDT中或者LDT中。调用门的选择子指向代码...

weixin_28595749的博客 239

windows内核研究(保护模式 5-调用门/中断门/陷阱门)

文章摘要 本文详细介绍了x86保护模式下的三种系统门机制:调用门、中断门和陷阱门。调用门用于跨特权级调用,通过GDT/LDT描述符实现受控访问;中断门和陷阱门属于IDT描述符,用于处理中断和异常。关键区别在于陷阱门不自动关闭中断(IF标志不变)。文中提供了构造调用门和实现中断/陷阱门的代码示例,并分析了权限切换时的堆栈变化。这些机制是操作系统实现特权隔离和系统调用的基础,调用门多用于旧系统,而现代系统主要使用中断门实现系统调用。

weixin_43754657的博客 1230

调用门详解

门描述符分为4种: 调用门 中断门 陷阱门 任务门 中断门和陷阱门是特殊的调用门 门描述符结构: 实例: 转载于:https://www.cnblogs.com/andyhe/p/3755729.html...

weixin_30487701的博客 159

门描述符(gate descriptors)总结

在保护模式下,中断描述符表(IDT)中的每个表项由8个字节组成,其中的每个表项叫做一个门描述符(Gate Descriptor), “门”的含义是指当中断发生时必须先访问这些“门”,能够“开门”(即将要进行的处理需通过特权检查,符合设定的权限等约束)后,然后才能进入相应的处理程序。而门描述符则描述了“门”的属性(如特权级、段内偏移量等)。在IDT中,可以包含如下3种类型的系统段描述符:

chen1540524015的博客 5801

任务状态段和门

<br />       每一个任务(可以理解为进程)都有一个任务状态段TSS,用于保存任务的有关信息,在任务内变换特权级和任务切换时要用到这些信息。<br />     系统段是为实现存储管理机制所使用的一种特别的段。在80386中,有两种系统段:任务状态段TSS和局部描述附表LDT段(注意:全局描述附表GDT不属于状态段)。不光在高级语言应用或者说用户应用程序编程中用到了数据结构,个人觉得在CPU硬件的支持下,系统编程也是把数据结构发挥的淋漓尽致,甚至CPU硬件支持本身就充分体现了结构化,或者说数据结构

青帝的专栏 1601
上一篇: VS2008 Feature Pack中 CMFCOutlookBarPane 问题
下一篇: 基于Dialog的应用程序,添加水平与垂直滚动条
barech
博客等级 码龄21年 137粉丝 99原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值