本文是极客时间《趣谈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的内存。
总结