本文是极客时间《趣谈Linux操作系统》的第6讲笔记, 链接:06 | x86架构:有了开放的架构,才能打造开放的营商环境-极客时间

Intel的8086 CPU架构

数据单元: 8个16bit 通用寄存器, 后面拓展位32bit

控制单元

IP 寄存器就是指令指针寄存器(Instruction Pointer Register),指向代码段中下一条指令的位置。

如果需要切换进程呢?每个进程都分代码段和数据段,为了指向不同进程的地址空间,有四个 16 位的段寄存器,分别是 CS、DS、SS、ES。

CS 就是代码段寄存器(Code Segment Register),通过它可以找到代码在内存中的位置

DS 是数据段的寄存器,通过它可以找到数据在内存中的位置。

SS 是栈寄存器(Stack Register)

地址多少bit对应多大的内存?

2^10 = K

2^20 = M

2^30 = G

2^16 = 2^6* 2^10 = 64 K

  • 32 位地址总线,可以访问 2^32=4GB 的内存,一个内存单元是1B, 2^32 = 4*2^30 = 4GB
  • 20位地址总线,可以访问2^20 = 1MB的内存

X86启动时的实模式,智能寻找1M内存,每个段最多64K. 保护模式32位系统,能寻址4G的内存。

总结