特此说明: 刘超的趣谈linux操作系统是比拟重要的参考资料,本文大部分内容和所有图片来源于这个专栏。
00、计算机的工作模式
关键词: CPU、总线、内存、其余设施
了解: 计算机仅通过cpu执行数据运算,两头后果保留到内存,最终运算后果传递给到其余过程解决
CPU
是这台计算机的大脑总线
组成CPU和其余设施的高速通道内存
存储介质,保留CPU计算的两头后果其余设施
,显卡/显示器、磁盘控制器/磁盘、usb控制器/鼠标键盘等
01、CPU和内存
关键词: 运算单元、数据单元、管制单元、代码段、数据段、指令指针寄存器、过程切换、总线
了解: CPU外部有3个单元组成。当程序加载到内存时,cpu通过总线读取过程的数据段(数据)和代码段(指令),将运算后的后果写回数据段。
运算单元
只管算,例如做加法、做位移等等。数据单元
包含 CPU 外部的缓存和寄存器组,空间小速度快,能够临时存放数据和运算后果。管制单元
是一个对立的指挥核心,它能够取得下一条指令,而后执行这条指令。内存分段
这里简略分为代码段和数据段两块,别离寄存指令和数据。指令指针寄存器
是管制单元局部,寄存下一条指令在内存中的地位。过程切换
CPU 里有两个寄存器,专门保留以后解决过程的代码段的起始地址,以及数据段的起始地址(A过程切换B过程后,指令指针寄存器也会指向B的代码段)。总线
有地址总线的位数决定寻址范畴,数据总线的位数决定一次读取多少数据。
02、x86平台
关键词: 凋谢、对立、兼容
了解: 约定俗成
03、x86平台处理器(8086处理器和32位处理器)
关键词: CS、DS、SS、20位地址总线、32位地址总线、段描述符、抉择子、实模式、保护模式
了解: 实模式是为了16位处理器(20bits总线),但这样对于32位处理器(32bits总线)无奈做到兼容, 开机后会从实模式切换到保护模式。
04、总结
对于X86架构在32bits处理器会开启段的工作模式,CPU对内存寻址的过程中,管制单元寄存器中寄存的是段抉择子, 通过它在内存的表格中找到段描述符,最终拿到段起始地址。下图阐明在此模式下cpu各单元和内存的工作模式。
05、练习题
# 理解下汇编指令:mov, call, jmp, int, ret, add, or, xor, shl, shr, push, pop, inc, dec, sub, cmp# 答案: move a b :把b值赋给a,使a=bcall和ret :call调用子程序,子程序以ret结尾jmp :无条件跳int :中断指令add a b : 加法,a=a+bor :或运算xor :异或运算shl :算术左移ahr :算术右移push xxx :压xxx入栈pop xxx: xxx出栈inc: 加1dec: 减1sub a b : a=a-bcmp: 减法比拟,批改标记位
参考资料
- 极客工夫 - x86架构
- x86 Assembly Guide
- Linux学习笔记《六》