toc:x86_64

toc:x86_64

通用 #

开启Cache x86 CPU需要开启Cache 可用于指定内存的寄存器 sub:x86指令参考

标志位 #

ZF零标志位的实现原理 用方向标志DF控制数据传送的方向 溢出标志OF IOPL位 修改IOPL位和IF位的四条指令 中断标志IF

实模式 #

寻址 #

基址寻址与变址寻址 绝对地址转移与相对近地址转移

8086支持的四种调用方式 #

16位相对近调用 16位间接绝对近调用 16位直接绝对远调用 16位间接绝对远调用

中断 #

两类外部硬件中断 NMI的中断号 实模式下的中断向量表 中断向量表的初始化 可编程中断控制器8259芯片 中断屏蔽寄存器(Interrupt Mask Register,IMR) 实模式下中断处理过程

保护模式 #

保护模式下,处理器的地址转换分为两个阶段(stage):

  1. logical address translating
  2. linear address space paging

线性地址(Linear Address) 从实模式进入保护模式的步骤

分段机制 #

sub:Segmentation(IA-32)

格式 #

栈段描述符的界限 栈操作时的保护 任务状态段TSS的格式 TSS描述符 TSS中的IO许可位映射区 IO许可位串 IO许可映射区的最后一位必须是0xFF 调用门描述符

检查 #

段的类别检查 用别名段来修改代码段

中断 #

中断门描述符格式 进入保护模式为什么需要关中断

保护机制 #

处理器对栈的保护 保护模式的三种权限类型 conforming与non-conforming代码段 低特权级调用高特权级的两种方法 特权级检查规则 请求特权级别RPL和当前特权级CPL不相同的例子 在特权级检查中引入RPL的必要性 操作系统负责设置RPL字段 特权指令(Privileged Instructions) 特权级别与栈 调用门的特权级检查

sub:分页机制(32位)

长模式 #

长模式段描述符 长模式中断门描述符格式 长模式下的4KB分页

Intel Pentium Instruction Set Reference Intel 64 and IA-32 Architectures Software Developer Manuals