Linux 学习笔记( LINUX运行的硬件基础1)

 
(一)   LINUX运行的硬件基础
1、 i386的寄存器
1.1          通用寄存器
i386有8个通用寄存器
EAX:一般用作累加器
EBX:一般用作基址寄存器(Base)
ECX:一般用来记数
EDX:一般用来存放数据
ESP:一般用作堆栈指针(STACK POINTER)
EBP:一般用作基址指针(BASE POINTER)
ESI:一般用作源变址(SOURCE INDEX)
EDI:一般用作目标变址(DESTINATION INDEX)
 
2、  段寄存器
4个16位段寄存器:CS、DS、SS、ES,分别用作存放可执行代码的代码段、数据段、堆栈段和其他段的基地址。
 
3、  状态和控制寄存器
由标志寄存器(EFLAGS)、指令指针(EIP)和4个控制寄存器组成。
3.1EIP中存放下一条将要执行指令的偏移量(OFFSET),这个偏移量加上当前代码段的基地址,就形成下一条指令的地址。
3.2EFLAGS存放有关处理器的控制标志。
第0位:进位标志
第2位:奇偶标志
第4位:辅助进位
第6位:零标志
第7位:符号标志
第8位:自陷标志
第9位:允许中断标志
第10位:定向标志
第11位:溢出标志
第12、13位(2位):I/O特权
第14位:嵌套方式
第16位:恢复方式
第17位:虚拟方式
寄存器中的第1、3、5、15、8~31位没有定义
3.3         4个控制寄存器是CR0、CR1、CR2、CR3
CR0的第0位:保护允许位PE(PROTECT ENABLE),第1位:监控协处理位MP(MONITER COPRPCESSOR),第2位:模拟协处理位EM(EMULATE COPROCESSOR),第3位:任务转换位(TASK SWITCH),第4位:微处理器的扩展类型位ET(PROCESSOR EXTENSION TYPE),第31位:分页允许位PG(PAGING ENABLE)
CR1:未定义
CR2:页故障线性地址寄存器
CR3:页目录基址寄存器,保存目录表的物理地址
 
4、  系统地址寄存器
有4个系统地址寄存器,它保存操作系统要保护的信息和地址转化表信息
4.1 全局描述符表寄存器GDTR(GLOBAL DESCRIPTOR TABLE REGISTER),是48位寄存器,用来保护全局描述表(GDT)的32位基地址和16位GDT的界限。
4.2 中断描述符表寄存器IDTR(INTERRUPT DESCRIPTOR TABLE REGISTER),是48位寄存器,用来中断描述符表(IDT)的32位基地址和16位IDT的界限。
4.3局部描述表寄存器LDTR(LOCAL DESCRIPTOR TABLE REGISTER),是16位寄存器,保存局部描述表LDT段的选择符。
4.4任务状态寄存器TR(TASK STATE REGISTER)是16位寄存器,保存任务状态段TSS段的16位选择符。
 
5、8个32位调试寄存器(DR0~DR7)和2个32位测试寄存器(TR6~TR7)
 
6、  内存地址
在使用80386时,必须区分以下3种不同的地址:逻辑地址、线性地址和物理地址
MMU是一种硬件电路,包含2个部件。分段部件和分页部件。分段机制把一个逻辑地址转换成线性地址,分页机制把线性地址转化成物理地址。
 
 
  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

betterzy

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值