【Linux内核-番外】汇编知识回顾
汇编基本知识
汇编语言可以使我们直接与底层硬件交互,直接对寄存器,物理内存进行操作。
寄存器

从实模式到保护模式
实模式
**硬件环境:**20位地址线(1M)CPU + 16位寄存器。如8086CPU
内存空间:

**内存寻址方式:**物理地址 = 段基址<<4 + 段内偏移
保护模式
**硬件环境:**32位地址线(4G)CPU + 32位寄存器。
**内存寻址方式:**偏移地址 = 基地址 + (变址 x 比例因子) + 偏移量
概述:
逻辑地址(=64TB)→线性地址(4G)→物理地址(4G)


分段机制
- 全局描述符表(GDT)和局部描述符表(LDT)的进程图:

GDT:主要负责 操作系统的相关段,局部描述符表 的寻址
LDT:主要负责 应用程序不同段的 寻址
- 寻址流程
分页机制
略(之前博客有详述)
保护机制
- CPU保护环:设置0~3级保护权限。

- 管理方式
设置CPL(当前优先级权限)和DPL(目标优先级权限)
CPL:当前指令表示为CS:IP,CS后两位表示CPL
DPL:目标权限的表示记录在GDT、IDT、LDT中
if CPL <= DPL: true;
if CPL < DPL: false;
中断
中断分类

流程
中断请求阶段
内中断:CPU无需接收请求,直接进行处理
外中断:外部中断源利用CPU的中断输入引脚输入中断请求信号。
中断判优阶段
CPU一次只能接受一个中断源的请求,当多个中断源同时向CPU提出中断请求时,CPU必须找出中断优先级最高的中断源,这一过程称为中断判优。
中断响应阶段
(1)保护现场:保护 当前栈环境 和 硬件环境
(2)中断向量→中断描述符表(IDT)→中断程序

中断服务阶段
执行中断程序的代码,返回发生中断的程序处。