
IA32-intel64
文章平均质量分 64
夏天不热 冬天不冷
IC X86 CPU
email: 1540524015@qq.com
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
IA32中的5种caching type(也叫memory type)
大部分内容来至于IA32手册第三卷10.3 METHODS OF CACHING AVAILABLE英文部分是绝对正确的,因为是原文。中文部分是一些自己的总结与理解,凑活着看吧。 IA32现在一共有5种caching type(也叫memory type)Table 10-2. Memory Types and Their PropertiesMemor转载 2017-07-03 16:57:53 · 1670 阅读 · 0 评论 -
栈帧详解
一、 什么是栈帧? 什么是栈帧,相信很多从事C编程的童鞋还是没有搞明白,首先引用百度百科的经典解释:“栈帧也叫过程活动记录,是编译器用来实现过程/函数调用的一种数据结构。”。 实际上,可以简单理解为:栈帧就是存储在用户栈上的(当然内核栈同样适用)每一次函数调用涉及的相关信息的记录单元。也许这样感觉更复杂了,好吧,让我们从栈开始来理解什么是栈帧...二、转载 2017-06-27 17:10:25 · 1434 阅读 · 0 评论 -
门描述符(gate descriptors)总结
在保护模式下,中断描述符表(IDT)中的每个表项由8个字节组成,其中的每个表项叫做一个门描述符(Gate Descriptor), “门”的含义是指当中断发生时必须先访问这些“门”,能够“开门”(即将要进行的处理需通过特权检查,符合设定的权限等约束)后,然后才能进入相应的处理程序。而门描述符则描述了“门”的属性(如特权级、段内偏移量等)。在IDT中,可以包含如下3种类型的系统段描述符:原创 2017-06-27 18:19:17 · 5667 阅读 · 0 评论 -
中断处理特权级转换
中断处理得特权级转换是通过门描述符(gate descriptor)和相关指令来完成的。一个门描述符就是一个系统类型的段描述符,一共有4个子类型:调用门描述符(call-gate descriptor),中断门描述符(interrupt-gate descriptor),陷阱门描述符(trap-gate descriptor)和任务门描述符(task-gate descriptor)。与中原创 2017-06-27 18:26:48 · 1726 阅读 · 0 评论 -
CPL RPL DPL 一致代码段 非一致代码段 总结
访问不同的数据段和代码段会产生特权级检查。CPL—当前执行任务或程序的特权级,在CS和SS段寄存器的0、1位保存。正常情况下CPL与取指令的代码段特权级相同,当程序跳转到不同特权级的代码段时,CPL会随着改变。但是,处理器在访问不同特权级的一致代码段时,CPL不会改变。一致代码段可以被数值上大于等于其DPL的一致代码段访问。(一致代码段,CPL>=DPL(数值>=,相反地,特权原创 2017-07-01 16:14:31 · 726 阅读 · 0 评论 -
TSS(任务状态段) TSS描述符 任务寄存器(TR) 任务门描述符 学习总结
1 任务状态段(TSS) 任务状态段(Task-State Segment(TSS)),保存任务状态信息的系统段为任务状态段。图7-2描述32位CPU的TSS信息。TSS主要分为动态字段和静态字段。 在任务切换过程中当任务挂起时,处理器会更新动态字段,动态字段有: (1)通用寄存器字段—任务切换之前,EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI寄存器状态。 原创 2017-07-01 17:26:01 · 11243 阅读 · 0 评论 -
段寄存器(segement register) 段选择符(segement selector) 段描述符(segement descriptor) 学习总结
段寄存器(segement register) 段选择符(segement selector) 段描述符(segement descriptor) 学习总结1 段寄存器 段寄存器包括CS,SS,DS,ES,FS,GS。结构如下图: 段寄存器包括可见部分和不可见部分。可见部分是段选择符字段,不可见部分包括基地址字段、界限字段和访问信息。段寄存器首先加载段选择符来填充可见部分,不可见部分的字段原创 2017-07-01 17:40:27 · 3646 阅读 · 0 评论 -
描述符表(descriptor table) 学习总结
主要包括GDT LDT IDT 总结 描述符表(descriptor table) 描述符表主要包括GDT,LDT和IDT。保存描述符。 GDT(The global descriptor table)全局描述符表,每一个系统只能有一个,所有的程序和任务共享使用。GDT中第一个描述符不被使用,为空描述符。通过指令lgdt将GDT的入口地址加载到GDTR寄存器中。LDT(The local de原创 2017-07-01 17:48:22 · 4280 阅读 · 0 评论 -
IA32处理器任务切换过程 学习总结
IA32处理器任务切换以下4中情况会使处理器跳转到其它任务: (1)当前的程序或任务执行JMP或CALL指令指向GDT中TSS描述符。 (2)当前的程序或任务执行JMP或CALL指令指向GDT或当前LDT中的任务门描述符。 (3)一个中断或异常指向IDT中的任务门描述符。 (4)当EFLAGS寄存器中NT标志置位时,当前任务执行IRET指令。当切换到新任务时,处理器完成以下操作: (1)从原创 2017-07-01 18:55:17 · 677 阅读 · 0 评论 -
intel bug - L1 Terminal Fault
L1 Terminal Fault 这个bug 详情和处理方式, 详情请参考linux kernel 官方文档:https://www.kernel.org/doc/html/latest/admin-guide/l1tf.html其中介绍该bug的主要一段话:L1 Terminal Fault is a hardware vulnerability which allows unpr...原创 2018-10-07 23:06:00 · 843 阅读 · 0 评论