x86 是个简称,80386 等
80386 四种运行模式 1 实模式, 只能够访问不超过1MB的内存 2 保护模式,支持内存分页
- EAX:累加器
- AL
- AH
- EBX:基址寄存器
- BL
- BH
- ECX:计数器
- EDX:数据寄存器
- ESI:源地址指针寄存器
- EDI:目的地址指针寄存器
- EBP:基址指针寄存器
- ESP:堆栈指针寄存器
- CS:代码段(Code Segment)
- DS:数据段(Data Segment)
- ES:附加数据段(Extra Segment)
- SS:堆栈段(Stack Segment)
- FS:附加段
- GS:附加段
- EIP:低16位就是8086的IP,存储的是下个指令的内存地址,在分段地址转换中,表示指令段内的便宜地址。
- IF(Interrupt Flag):中断允许标志位,由CLI,STI两条指令来控制;设置IF使CPU可识别外部(可屏蔽)中断请求,复位IF则禁止中断。 IF对不可屏蔽的外部中断和故障中断识别没有任何作用
段地址 * 0x10H + 偏移地址
处理器提交到总线上用于访问计算机系统中的内存和外设的最终地址 一个计算机系统中只有一个物理地址空间
80386处理器通过段(Segment)机制控制下的形成的地址空间
编写的应用程序所用到的逻辑地址(也有人称为虚拟地址)
- 分段机制启动、分页机制未启动:
逻辑地址—>段机制处理—>线性地址=物理地址
- 分段机制和分页机制都启动:
逻辑地址—>段机制处理—>线性地址—>页机制处理—>物理地址
mov %x, %y 把 x 移动到 y
- mov x,y 把 y 里面的值 移动的x
- jmp x == mov ip,x 把x里面的值移动到 ip
- cli
- cld
- xorw
- inb
- testb
- jnz
- outb
- 一个执行程序的内容是至少由 bss段、data段、text段三大部分组成
- 中断:外设, 异步
- 异常:应用程序意想不到的行为,同步
- 系统调用:应用程序要求操作系统提供服务,异步或者同步
- 引导机制
- 简历内核堆栈
- 验证参数
- 内核态映射到用户态的地址空军映射
- 内核态独立地址空间TLB
+---------------------------+ | | | 处理器 | +----------------------------+ | | | | | | 访问速度 | | | +------------+ | | | | | | CPU | | | 3.6GHz | 硬件 | | | L1缓存 | | | | MMU | | +------------+ | | | | |+-------------------------+| | | | || L2缓存 || | | | || || | +----------------------------+ |+-------------------------+| | +---------------------------+ | | | | | | | | 高速缓存未命中 | | ------------------+-----------------------------+-----------------------------+---------------------------o | | | +---------------o------------------+ | | | | | | | 内存 | | 1.3Ghz | | | | +------------+---------------+ | | | | | +---------------+------------------+ | | | | | | OS | | | | | | | | | +----------------------------------+ | | | | | | 5ms | | | | +----------------------------+ | 外存(Swap) | | | +----------------------------------+