【计算机与UNIX汇编原理③】——80X86微处理器【 通用寄存器、实模式、逻辑地址与物理地址】



文章目录

  • 一、微处理器简介及相关常用术语
  • 二、32位微处理器内部结构
    • 1、微处理器的功能和主要功能模块:
    • 2、基本结构寄存器
    • 3、通用寄存器
    • 4、段寄存器
    • 5、指针寄存器
    • 6、标志寄存器
  • 三、32位微处理器的外部引脚
    • 1、数据线及控制信号
    • 2、地址线及控制信号
    • 3、系统控制信号
    • 4、总线周期定义信号(输出)
  • 四、32位微处理器的地址空间和工作模式
    • 1、32位微处理器的地址空间
  • 五、32位微处理器的工作模式
    • 1、实模式的特点:
    • 2、保护模式的特点:
    • 3、虚拟80486模式:
    • 4、实模式下20位物理地址的形成(这一章的重点)
  • 六、参考附录:


这里有一块 80X86

文章中穿插了一些个人的理解,特别是绿色字体部分,如有不周,烦请指正。

上一篇文章地址链接: 【计算机与汇编原理②】——存储器系统【RAM ROM 高速缓冲存储器Cache】.
下一篇文章地址链接: 【计算机与汇编原理④】——指令系统(上)【标志寄存器 立即寻址 寄存器寻址 直接/寄存器/基址/变址寻址】.


一、微处理器简介及相关常用术语


  ● 微处理器由一片或少数几片大规模集成电路组成的中央处理器。这些电路执行控制部件和算术逻辑部件的功能。

  ● 微处理器能完成取指令、执行指令,以及与外界存储器和逻辑部件交换信息等操作,是微型计算机的运算控制部分。它可与存储器和外围电路芯片组成微型计算机

  ● (bit):计算机所能表示的最小最基本的数据单位,它指的是取值只能为 0 或 1 的一个二进制数值位。

  ● 字节(byte):由8个位二进制位组成,通常用作计算存储容量的单位。

  ● 字长:微处理器一次可以直接处理的二进制数码的位数。它通常取决于微处理器内部通用寄存器的位数和数据总线的宽度。微处理器的字长有4位、8位、16位、32位和64位等等。

  ● 寻址能力:CPU能直接存取数据的内存地址的范围。它由CPU的地址总线的数目决定。

  ● 主频(也叫时钟频率):用来表示微处理器的运行速度。主频越高表明微处理器运行越快,主频的单位是 MHz 。

  ● MIPS ( Millions of Instruction Per Second 的缩写):用来表示微处理器的性能——运算速度,即每秒钟能执行多少百万条指令。

  ● 微处理器的集成度:指微处理器芯片上集成的晶体管的密度。

  最早的Intel 4004的集成度为2250个晶体管,而99年的Pentium III的集成度已经达到750万个晶体管以上,集成度提高了3000多倍。



二、32位微处理器内部结构


1、微处理器的功能和主要功能模块:

  ● 微处理器的功能:从存储器中取出构成程序的一条指令,分析并执行这些指令,从而完成程序设定的任务。

  ● 基本功能模块
    总线接口单元 BIU:寄存器组
    执行单元EU :运算器,控制器,寄存器组


2、基本结构寄存器

  ● 80X86内部寄存器分为4类:
    ① 基本结构寄存器
    ② 浮点寄存器
    ③ 系统级寄存器
    ④ 调试测试寄存器
  ● 应用程序只能访问基本结构寄存器和浮点寄存器。(我们的课程只介绍基本结构寄存器)


3、通用寄存器

【计算机与UNIX汇编原理③】——80X86微处理器【 通用寄存器、实模式、逻辑地址与物理地址】_第1张图片

  ◆ 补充说明:左为高位,右为低位
  ◆ 作用用于存放操作数以及运算的中间结果等信息,在指令中广泛使用。

  ● 通用寄存器一共有八个,每一个都用专门的功能(后面专门介绍),且每一个都是从“ D0 到 D32 ”,一共有32位。

  ● 对于前四个通用寄存器:EAX、EBX、ECX、EDX,它们的高 16 位都是 “E” 为 “Extended” 缩写。

  ● (低)16位通用寄存器的汇编助记符为:AX、BX、CX、DX、BP、SP、DI、SI

  ● 32位通用寄存器的汇编助记符为:EAX、EBX、ECX、EDX、ESP、EBP、EDI、ESI

  ● 高8位通用寄存器的汇编助记符为:AH、BH、CH、DH 【注:“H” 是 “High” 的缩写】

  ● 低8位通用寄存器的汇编助记符为:AL、BL、CL、DL 【注:“L” 是 “Low” 的缩写】

  ● 举个栗子
    AH、AL是AX的高/低8位,AX是EAX的低16位,若设:EAX=12345678H
      则: AX = 5678H,AH = 56H,AL = 78H

    反之,当 “89H → AH”,“90H → AL” 后 ( 高16位还是保持不变,即“1234H” )
      则: AX = 8990H,EAX = 12348990H


4、段寄存器

【计算机与UNIX汇编原理③】——80X86微处理器【 通用寄存器、实模式、逻辑地址与物理地址】_第2张图片

  ◆ 作用:存放逻辑段的段地址,用于存储器单元物理地址的形成。


5、指针寄存器

在这里插入图片描述

  ◆ 补充说明:32 位称为 EIP ,低 16 位为 IP。
  ◆ 作用:存放指令所在单元的偏移地址。


6、标志寄存器

在这里插入图片描述

  ◆ 补充说明:EFLAGS为 32 位寄存器,其中 FLAGS 为 16 位寄存器(D15 ~ D0)
  ◆ 作用:1. 存放状态标志。状态标志用于记录 CPU 运行结果状态。
      2. 设置控制标志。控制标志用于控制 CPU 的某种操作。

  ● 状态标志:表示前面的操作执行后,算术逻辑部件处在怎样一种状态,这种状态会像某种先决条件一样影响后面的操作。有SF、ZF、PF、CF、AF和OF
  ● 控制标志:每个控制标志都对某一种特定的功能起控制作用。指令系统中有专门的指令用于控制标志的设置和清除。有DF、IF、 TF。



三、32位微处理器的外部引脚


1、数据线及控制信号

  ● 数据线:D63 ~ D0 一共 64 位。


2、地址线及控制信号

  ● A31 ~ A0:高 32 位地址线
  ● BE7 ~ BE0:字节允许信号(存储体选中信号)外围电路对 BE7 ~ BE0 译码以产生 A2 ~ A0 信号


3、系统控制信号

  ● 时钟输入: CLK
  ● 可屏蔽中断请求: INTR
  ● 非屏蔽中断请求 :NMI
  ● 系统复位信号 :RESET。系统复位后,程序运行的地址为: FFFFFFF0H
  ● 实模式 CS: F000H,IP: 0FFF0H
  ● 系统时钟:是微处理器内部与外部操作的同步时基信号,由时钟(CLK)输入信号来提供。
  ● 时钟周期:指时钟输入信号的周期,也表示为 T 状态。


4、总线周期定义信号(输出)

  ● 总线周期:一段时间 CPU 通过总线与存储器、I/O交换一个数据所需要的时间称为总线周期。

  ◆ M / I O ‾ = 1 M/\overline{ IO }= 1 M/IO=1 时,表明在该总线周期中,CPU 正在与存储器交换信息
  ◆ M / I O ‾ = 0 M/\overline{IO} = 0 M/IO=0 时,表明在该总线周期中,CPU 正在与I/O接口交换信息

  ◆ W / R ‾ = 1 W/\overline{R} = 1 W/R=1时,表明在该总线周期中,CPU正在进行写操作
  ◆ W / R ‾ = 0 W/\overline{R} = 0 W/R=0 时,表明在该总线周期中,CPU正在进行读操作

  ◆ D / C ‾ = 1 D/\overline{C} = 1 D/C=1 时,表明在该总线周期中,正在传输数据
  ◆ D / C ‾ = 0 D/\overline{C} = 0 D/C=0 时,表明在该总线周期中,正在传输指令代码



四、32位微处理器的地址空间和工作模式


1、32位微处理器的地址空间

  ● 地址空间分为【按访问器件不同进行划分】: 存储空间 【这学期讲】和 I/O空间【大三下讲】。

  ● 物理空间(物理存储器地址空间):程序的运行空间,即主存空间。

  80486有 32 条地址线,内存最大容量 4G 。这 4G 字节称为物理存储器,每一单元的地址称为物理地址,其地址范围 0000,0000H ~ FFFF,FFFFH 为物理存储空间。

  ● 虚拟空间(虚拟存储器地址空间):也称为编程空间
  虚拟存储器是一项硬件和软件结合的技术。

【计算机与UNIX汇编原理③】——80X86微处理器【 通用寄存器、实模式、逻辑地址与物理地址】_第3张图片

  ◆ 补充说明:存储管理部件把主存(物理存储器)和辅存 (磁盘)看作是一个整体,即虚拟存储器。80486允许虚拟存储器容量最大为246B = 64 TB,即程序员可在此地址范围内编程,程序可大大超过物理空间。

  ◆ 运行时,操作系统从虚拟空间取一部分程序载入物理存储器运行。当程序运行需要调用的程序和要访问的数据不在物理存储器时,操作系统再把那一部分调入物理存储器.……数据的交换极快,程序察觉不到。

  ● 线性空间:当程序从虚拟空间调入物理空间时,要进行地址转换。

【计算机与UNIX汇编原理③】——80X86微处理器【 通用寄存器、实模式、逻辑地址与物理地址】_第4张图片

  ◆ 流程说明:分段部件首先把虚拟地址(编程地址)转换为线性地址,然后根据模式的不同考虑分不分页,如果不分页的话,线性地址就是物理地址;如果分页的话,则由分页部件把线性地址转换为物理地址。

  ● 实模式:存储空间仅分段,而不分页;
  ● 保护模式:存储空间先分段,再分页。



五、32位微处理器的工作模式


  ● 80486有 3 种工作模式:
    ① 实地址模式(简称实模式)
    ② 保护虚拟地址模式(简称保护模式)
    ③ 虚拟80486模式

【计算机与UNIX汇编原理③】——80X86微处理器【 通用寄存器、实模式、逻辑地址与物理地址】_第5张图片

1、实模式的特点:

  ① 加电、复位之后,80486自动工作在实模式,系统在DOS管理下。(也就是说,开机后,电脑会跑BIOS上面的代码)
  ② 在实模式下,80486 只能访问第一个 1M 内存(00000H~FFFFFH)。【进入保护模式后,1M之外的物理存储空间才能使用】
  ③ 存储管理部件对存储器只进行分段管理,没有分页功能,每一逻辑段的最大容量为 64KB 。
  ④ 在实模式下,段寄存器中存放段基址。


2、保护模式的特点:

  ● 80486工作在保护模式下,才能真正发挥它的设计能力。
  ① 在保护模式下,80486 支持多任务操作系统
  ② 在保护模式下,80486 可以访问 4GB 的物理存储空间
  ③ 存储管理部件中,对存储器采用分段和分页管理。在保护模式下,段寄存器存放的不是段基址而是段选择符。


3、虚拟80486模式:

  ● 虚拟80486模式是保护模式下的一种特殊工作模式,可运行实模式程序。
  在操作系统管理下,80486可以分时地运行多个实模式程序 ( 因为在虚拟8086模式下,486认为段寄存器中存放的不是选择符而是段基址 )
  例如有3个任务。操作系统为每一个任务分配 1ms ,每通过 1ms 就发生一次任务切换。从宏观上看系统是在执行多个任务,实质上是因为联机打印程序使用了“分时技术”。打印程序只能在 DOS 环境下运行,只占用了系统 10% 的时间。


4、实模式下20位物理地址的形成(这一章的重点)

  ● 首先,我们要知道为什么我们要提出物理地址,又是为什么后面我们要常用逻辑地址?

  通过一个示意图来了解一下

【计算机与UNIX汇编原理③】——80X86微处理器【 通用寄存器、实模式、逻辑地址与物理地址】_第6张图片
  ① 在程序执行的一开始,我们得先编写好这段 .exe 程序代码,而这些程序代码是存放在硬盘上的。

  ② 当要运行这段代码时,操作系统会将代码 “送” 到主存(内存)中。但是因为内存空间并不是理想的空箱子,它里面本来就装有其他代码。

  ③ 所以,这段 .exe 代码有可能被放在了 “第一段” 的位置,也可能被放在了 “第二段 或 第三段、…” 的位置。

  ④ 所以当在执行这段程序时,CPU 的指针扫到的 “绿色” 那段代码的 “绝对地址”,会根据这代码所在段的位置不同而有所不同。

  ⑤ 但是 “绿色” 那段代码距 “代码文件头地址” 的 “相对位置” 并不会随段的位置改变而不同。

  ⑥ 所以,我们用 逻辑地址 能更方便且快速无误地表示出每一行代码的位置。【但是计算机只认物理地址,所以逻辑地址是用来方便程序员,物理地址是用来方便计算机的】


  ● 程序员编写程序时使用的是逻辑地址

  ● 程序是分段的,逻辑地址由段基址偏移地址组成。书写格式:“ 段基址:偏移地址 ”

  ● 逻辑地址到物理地址的转换(也称为物理地址的形成)由 CPU 负责完成。

  ● 我们把 1M 字节的存储器分为任意数量的逻辑段,其中每一段长度为 64K(216)个字节。段的起始地址的高 16 位地址称为该段的段基址。段内再由 16 位二进制数寻址,段内寻址的 16 位二进制数地址是存贮单元到段起始地址的距离,称为偏移地址(偏移量)。如下图所示:

  注:上面说的 “16位” 是针对 2 进制的,所以针对 16 进制是 “4位”(即比如 “2345H” 中的四个数字)。

【计算机与UNIX汇编原理③】——80X86微处理器【 通用寄存器、实模式、逻辑地址与物理地址】_第7张图片

  ● 存贮器中的每个存贮单元都可以用两个形式的地址来表示:物理地址和逻辑地址。物理地址是指 1MB 存贮区域中的某一单元地址。地址信息是 20 位的二进制代码,以 16 进制表示是 00000H~FFFFFH 中的一个单元。CPU 访问存贮器时,地址总线上送出的是物理地址编制程序,则采用逻辑地址

  ◆ 在一个逻辑段中,各单元的段基址是相同的。段基址指明由哪个段寄存器给出即可。
  ◆ 偏移地址是该单元相对于段首的地址偏移量。偏移地址是由程序员在程序中给出的具体值。

  ● 实模式下20位物理地址的形成过程
【计算机与UNIX汇编原理③】——80X86微处理器【 通用寄存器、实模式、逻辑地址与物理地址】_第8张图片

  举个栗子:设某存贮单元逻辑地址为1000H:2345H
  则段基址 = 1000H,偏移量 = 2345H,故物理地址为:

【计算机与UNIX汇编原理③】——80X86微处理器【 通用寄存器、实模式、逻辑地址与物理地址】_第9张图片

  ● 最后注意
  物理地址是唯一的,不同的逻辑地址可能得到相同的物理地址。 如:
    2000H:0200H 一一 > 20200H
    2010H:0100H 一一 > 20200H



六、参考附录:

[1] 《微型计算机原理与接口技术(慕课板)》
清华大学出版社

[2] 《汇编语言程序设计(第2版)》

[3] 《EAX、ECX、EDX、EBX等寄存器的作用》
链接: https://blog.csdn.net/qq_42383069/article/details/109059138.

上一篇文章地址链接: 【计算机与汇编原理②】——存储器系统【RAM ROM 高速缓冲存储器Cache】.

下一篇文章地址链接: 【计算机与汇编原理④】——指令系统(上)【标志寄存器 立即寻址 寄存器寻址 直接/寄存器/基址/变址寻址】.


正在施工中…

你可能感兴趣的:(计算机原理与UNIX学习笔记,unix,寄存器)