了解一款芯片,最基本的就是要了解它的寄存器。大家不要因为80386是32位处理器,就认为它的寄存器都是32位的。其实它的寄存器相当的复杂。不仅有32位的,还有16位的,48位的,乃至64位的。80386共有34个寄存器,可分为七类。它们分别是通用寄存器、指令指针和标志寄存器、段寄存器、系统地址寄存器、控制寄存器、调试和测试寄存器。以下是部分常用的寄存器:

一、通用寄存器(8个)

80386有8个32位的通用寄存器,这8个通用寄存器都是由8088/8086/80286的相应16位通用寄存器扩展成32位而得。名字分别是:EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP。每个寄存器可以掰成两个16位寄存器使用,也可以掰成4个8位寄存器使用。

二、指令指针和标志寄存器(2个)

80386的指令指针EIP是一个32位寄存器,是从8086的IP扩充而来。

80386的标志寄存器EFLAGS也是一个32位寄存器,其中只使用了15位,从8086的FLAGS寄存器扩展而来。如下图所示。

三、段寄存器(6个)

80386有6个段寄存器,分别是CS,DS,SS,ES,FS和GS,是16位寄存器。前4个段寄存器的名称与8088/8086相同,在实地址方式下使用方式也和8088/8086相同。80386又增加了FS与GS,主要为了减轻对DS段和ES段的压力。

四、控制寄存器(4个)
    80386有4个32位控制寄存器(CR0、CR1、CR2和CR3)。它们的作用是保存全局性的机器状态。其中CR0的格式如下图所示。

CR0的低16位称为机器状态字MSW,其中:
    PE 保护允许位。进入保护方式时PE=1。除复位外,不能被清除。实方式时PE=0。

PG 页式管理允许位。PG=1表示启用芯片内部的页式管理系统,否则PG=0。

其余的三个控制寄存器的作用是:CR1由Intel公司保留,CR2存放引起页故障的线性地址,CR3存放当前任务的页目录基地址(页目录基址寄存器)。

五、系统地址寄存器(4个)

80386有4个系统地址寄存器,用来存储操作系统需要的保护信息和地址转换表信息、定义目前正在执行任务的环境、地址空间和中断向量空间。

GDTR 48位全局描述符表寄存器,用于保存全局描述符表的32位基地址和全局描述符表的16位界限(全局描述符表最大为216字节,共2^16/8=8K个全局描述符)。

注:GDT表里面的每一项都表明一个段的信息,或者是一个LDT表的相关信息。其实一个LDT表也是一个段。所以也可以说GDT表的每一项都描述一个段。就像一个文件夹下面可以有文件,也可以有文件夹一样,GDT表里面既可以有段描述符,也可以有LDT的表。

IDTR 48位中断描述符表寄存器,用于保存中断描述符表的32位基地址和中断描述符表的16位界限(中断描述符表最大为216字节,共2^16/8=8K个中断描述符)。

LDTR 16位局部描述符表寄存器,用于保存局部描述符表的选择符。一旦16位的选择符(也叫选择子)放入LDTR,CPU会自动将选择符所指定的局部描述符装入64位的局部描述符寄存器中。

TR 16位任务状态段寄存器,用于保存任务状态段(TSS)的16位选择符。与LDTR类似,一旦16位的选择符放入TR,CPU会自动将该选择符所指定的任务描述符装入64位的任务描述符寄存器中。

注:TSS是一个段,所以在GDT中有对应的表项描述。

LDTR和TR寄存器是由16位选择字段和64位描述符寄存器组成。用来指定局部描述符表和任务状态段TSS在物理存储器中的位置和大小。64位描述符寄存器是自动装入的,程序员不可见。LDTR与TR只能在保护方式下使用,程序只能访问16位选择符寄存器。(注意区分描述符表寄存器与描述符寄存器)

可以看到IDTR也是48位的(大于32位),与GDTR位数一样,大于32位的结构自然就有4G内任意寻址的能力。所以理论上我们可以直接访问中断向量表,不需要通过选择子(16位结构)来间接寻找。所以IDT表可以与GDT表完全独立,不需要像LDT一样还要在GDT表建立相关表项。但是TSS段和LDT表两个结构就不行,他们的寄存器只有16位,不可能在4G内存中任意寻址,所以只能将其插入到GDT表中,然后借用GDT和自身的选择子的组合来间接寻址。

参考:http://mcit.xjtu.edu.cn/wlkj/wykj/ch2/ch2_4_1.htm

80386常用内部寄存器相关推荐

  1. ORCAD常用元件库说明

    以下是ORCAD自带库文件的说明,路径:Cadence\Cadence_SPB_16.6\tools\capture\library 1' AMPLIFIER.OLB 共182个零件,存放模拟放大器I ...

  2. Delphi常用关键字用法详解

    本文详细介绍了Delphi中常用的各个关键字名称及用法,供大家在编程过程中借鉴参考之用.详情如下: absolute: [delphi] view plaincopy //它使得你能够创建一个新变量, ...

  3. android 串口通信_使用UART与ZYBO进行通信常用外设设计方案

    作者:Wilson Qiu,Xilinx工程师 常用外设设计 使用UART与ZYBO进行通信 ZYNQ学习过程中一个重要环节是进行调试,当然在SDK中进行调试时,设置断点进行单步调试非常高效.但是ZY ...

  4. oracle 运营维护_Oracle数据库日常运维常用脚本

    大 中 小 Oracle数据库日常运维常用脚本 1 查看所有数据文件 select file_name from dba_data_files union select file_name from ...

  5. zynq中mgtx应用_【干货分享】ZYNQ常用外设设计 (上)

    2. IO的电压为1.8V. 3. 默认使用的参数为:115200波特率以及其他对应参数,见图 21. Step2: 在Vivado的Block Design中配置ZYNQ7 Processing S ...

  6. 保护模式下的80386及其编程02:机器状态和存储寻址

    目录 1 寄存器 1.1 通用寄存器 1.2 处理器控制寄存器 1.2.1 指令指针寄存器EIP 1.2.2 处理器状态和控制标志寄存器EFLAGS 1.3 段寄存器 2 内存寻址机制 2.1 基于段 ...

  7. 【嵌入式模块】常用扩展芯片及数据手册总结

    文章目录 前言 一.74HC165 二.74HC595 工作原理 实战演练 三.MAX7219/MAX7221 参考链接 概述 工作原理介绍 点阵LED控制例程 四.PCA9685 参考链接 概述 引 ...

  8. 内部寄存器:通用寄存器、控制寄存器、段寄存器

    内部寄存器含14个16位寄存器,按功能可分为三类:8个通用寄存器.4个段寄存器.2个控制寄存器. 通用寄存器:包括(数据寄存器.地址指针寄存器.变址寄存器) 1.数据寄存器(AX,BX,CX,DX)可 ...

  9. 常用Linux操作系统的发展历史

    文件目录 文件权限 特权文件suid,sgid,sbit Linux操作系统 Linux发展史及简介 Linux简单介绍 Linux发展史 Linux族谱 Linux重要人物 Linux与Unix的渊 ...

  10. Synplify Pro的常用选项及命令

    文章目录 一. 状态机相关 二. 面积和速度优化 三. 其他常用选项及命令 Synplify Pro是Synplicity公司(Synopsys公司于2008年收购了Synplicity公司, 其客户 ...

最新文章

  1. Middleware课程01-概述
  2. 弱电工程网络视频监控系统联网方式及接地要求
  3. 喜马拉雅音频下载工具
  4. vscode 加参数运行_VSCode 调试 Webpack 指南
  5. CXF客户端配置请求超时限制-SocketTimeoutException(Spring配置文件中配置和通过代码进行配置)
  6. 别致的上传思路导致getshell的案例
  7. 完全相同的4个小矩形如图所示放置_短线投资,遇到“矩形突破”,斩钉截铁满仓干!...
  8. python request url编码_Python 爬虫 (requests) 发送中文编码的 HTTP POST 请求
  9. ip68级防水可以泡多久_ip68级防水手机有哪些
  10. Python办公自动化 - 3 Excel办公自动化
  11. python代码编辑器、最好_这十大文本/代码编辑器最好用
  12. mysql卸载注意问题_mysql卸载注意事项
  13. java-maven的配置
  14. 简练软考知识点整理-激励理论之赫兹伯格双因素理论
  15. 【硬件工程师】芯片手册阅读-电阻式触摸屏控制芯片
  16. maven 报错 Failed to execute goal on project ...: Could not resolve dependencies for project ...
  17. 云渲染和渲染农场有什么区别?看完你就明白了
  18. 荣耀30会更新鸿蒙系统吗,华为荣耀30肿么升级鸿蒙系统?
  19. 河南省iscc2019线下(hnciscn)Misc
  20. 【题解】Cutting Woods

热门文章

  1. 未来教育计算机二级第十八套ppt,未来教育.ppt
  2. 大疆无人机实现目标定位
  3. format mla_MLA Format MLA格式
  4. 全球连接器厂商TOP 50!(含具体分析报告)
  5. win10禁用驱动程序强制签名_Win10系统永久禁用驱动数字签名的方法是什么?
  6. icom对讲机写频线定义_ICOM对讲机的常见故障和使用中的问题
  7. QT移植Linux平台
  8. JWplayer入门及使用
  9. 自定义CardView
  10. MySQL 8.0.27 下载安装与配置详细教程(Windows64位)