第二章 80x86微处理器简介

第二章 80x86微处理器简介

    • 2.第二章 80x86微处理器简介
      • 本章小结
          • 本章需要记住的两个很重要的知识点
      • 2.1 Intel微处理器
        • 8086内部结构
        • 80386内部结构
        • CPU访存过程
      • 2.2 寄存器组
        • 寄存器
        • 寄存器分类
        • 通用寄存器
          • 通用寄存器之数据寄存器
          • 通用寄存器之变址寄存器
          • 通用寄存器之堆栈指针寄存器
          • 通用寄存器例子
        • 段寄存器
          • 段寄存器之代码段
          • 段寄存器之数据段
          • 段寄存器之堆栈段
          • 段寄存器之附加段
          • 段寄存器之FS、GS
          • 段寄存器之默认选择规定
        • 专用寄存器
          • 指令指针寄存器EIP
          • 标志寄存器
          • 状态标志
            • 零标志ZF(Zero Flag)
            • 符号标志SF(Sign Flag)
            • 奇偶标志PF(Parity Flag)
            • 辅助进位标志AF(Auxiliary Carry Flag)
            • 进位标志CF(Carry Flag)
            • 溢出标志位OF(Overflow Flag)
            • 状态标志寄存器的例题
      • 2.3 工作模式
        • 工作模式
        • 实地址模式
        • 保护模式
        • 虚拟8086模式
      • 2.4 存储器组织
          • 标准结构
          • 物理地址(实际地址)
          • 存储器分段
          • 地址类型
          • 物理地址(实际地址)和逻辑地址
          • 默认段地址
          • 存储器数据的存取方式

2.第二章 80x86微处理器简介

本章小结

第二章 80x86微处理器简介_第1张图片

本章需要记住的两个很重要的知识点

物理地址(PA)=段地址(DS/CS)*16+偏移地址

6种状态标志,并且会判断

2.1 Intel微处理器

80x86

  • 泛指基于英特尔框架的各款x86微处理器
  • 后期还有Intel Xeon(至强)、Intel Core(酷睿)
  • 最大特点:保持与先前处理器的兼容

8086内部结构

功能分类:

  • 运算器:负责所有的算术逻辑运算
  • 控制器:负责微型系统的所有控制功能

结构分类:

  • 执行单元

    ​ 部件:指令译码部件算术逻辑单元通用寄存器组

    ​ 功能:负责指令译码和执行

  • 总线接口单元

    ​ 部件:指令队列缓冲器总线控制逻辑专用寄存器地址产生器

​ 功能:负责CPU和外部联络

第二章 80x86微处理器简介_第2张图片

80386内部结构

第二章 80x86微处理器简介_第3张图片

CPU访存过程

访存过程

  1. CPU通过**控制总线**,发出访存信号,通知主存准备数据读写

  2. CPU通过**地址总线**,发出存储单元的地址

    ​ 主存储器接收到地址后,译码,寻址正确的存储单元

  3. CPU通过**控制总线**,发出读写的指令

    ​ 主存储器将准备执行读写操作

  4. CPU通过**数据总线**,读出或写入的数据

第二章 80x86微处理器简介_第4张图片

2.2 寄存器组

寄存器

什么是寄存器?:寄存器是CPU内部有若干触发器逻辑电路组成,用来暂存二进制指令数据地址的部件

寄存器的功能有什么?

  • 将寄存器内的数据执行算术或逻辑运算
  • 寄存器内的数据可以用来指向内存的某个位置,即寻址
  • 读写数据

寄存器的特点有什么?

  • 寄存器之间的数据传送速度很快
  • 使用灵活(例如:暂存运算的中间数据)、控制方便(如:IP)

寄存器分类

寄存器的分类

  • 通用寄存器:传送和暂存数据;参与算术逻辑运算并保存结果

  • 段寄存器:保存段地址,用于寻址时构成物理地址

  • 专用寄存器

    • 指令指针寄存器:保存将要去除指令的有效地址
    • 状态标志寄存器:反应处理器的状态和运算结果的某些特征
  • 控制寄存器:

  • 系统地址寄存器

  • 调试寄存器

  • 测试寄存器

第二章 80x86微处理器简介_第5张图片

第二章 80x86微处理器简介_第6张图片

通用寄存器

通用寄存器

  • 存储数据参与算术逻辑运算给出存储器单元的地址
  • image-20221030100040082

第二章 80x86微处理器简介_第7张图片
第二章 80x86微处理器简介_第8张图片

通用寄存器之数据寄存器

数据寄存器

  • 8086CPU可以直接访问这些数据寄存器的低8位

第二章 80x86微处理器简介_第9张图片

数据寄存器命名规则

第二章 80x86微处理器简介_第10张图片

通用寄存器之变址寄存器

变址寄存器SI DI

  • 常作为指针,存放存储单元的有效地址,也可暂存数据

特殊用法

  • SI DI中保存的地址信息会随指令的执行而改变
  • SI 串操作中存放源串地址,默认**DS段**
  • DI 串操作中存放目的串地址,默认**ES段**
  • 注意:该特殊用法只在字符串操作中有效
通用寄存器之堆栈指针寄存器

第二章 80x86微处理器简介_第11张图片

通用寄存器例子

第二章 80x86微处理器简介_第12张图片

第二章 80x86微处理器简介_第13张图片

对低位操作,不影响高位;对高位操作,不影响低位

段寄存器

段寄存器

  • 用来存放段首地址段选择符的16位寄存器

  • 一段汇编语言程序中至少有一个逻辑段——代码段,用于存放代码

    第二章 80x86微处理器简介_第14张图片

段寄存器之代码段

代码段

  • 存放要执行的指令序列

  • 段首地址用代码段寄存器CS来保存

  • 指令指针寄存器IP只是本段中的地址

    • 将要执行的下条指令的有效地址
  • CPU用 CS : IP 形成存储单元的物理地址(实际地址PA)

下面插入一个很重要的知识点:

物理地址(PA)=段地址(DS/CS)*16+偏移地址

  • 有效地址(EA):有效地址EA是一16位无符号数,表示操作数所在单元到段首的距离即逻辑地址的偏移地址。

当操作数是存放在存储器中时,存储器的存储单元的物理地址有两部分组成。一部分是偏移地址;一部分是段地址。在8086/8088的各种寻址方式中,寻找存储单元所需的偏移地址可由各种成分组成,称为有效地址,用EA表示。可以通过存储器寻址方式获得有效地址.

  • 有效地址可以由几部分组成:基址寄存器内容、变址寄存器内容、比例因子和位移量。

  • 段地址:电脑内的存储器地址可被分为若干逻辑段。每个逻辑段的起始地址称为段地址。

可以参考这个理解一下这个公式【汇编】“物理地址=段地址*16+偏移地址”的本质含义 - 知乎 (zhihu.com)

逻辑地址:逻辑地址是用户编程时使用的地址,分为段地址和偏移地址两部分

  • 一个存储单元有一个物理地址,还有多个逻辑地址

    下面这2个链接应该有所帮助

    单片机基础之汇编语言入门学习(四) 物理地址 逻辑地址 段寄存器与逻辑段

    逻辑地址(段地址,偏移地址)知识点全面回顾

    这里有一简单的练习题

    第二章 80x86微处理器简介_第15张图片

段寄存器之数据段

数据段DS

  • 用来存放程序运行时所需的数据
  • 段首地址用DS来保存
  • CPU利用DS(段地址):EA(有效地址)形成存储单元的物理地址
段寄存器之堆栈段

堆栈段

第二章 80x86微处理器简介_第16张图片

段寄存器之附加段

附加段

第二章 80x86微处理器简介_第17张图片

段寄存器之FS、GS

第二章 80x86微处理器简介_第18张图片

段寄存器之默认选择规定

第二章 80x86微处理器简介_第19张图片

专用寄存器

指令指针寄存器EIP

  • 保存将要执行指令的有效地址
  • 该寄存器的内容是不允许被人更改,通过指令的执行自动改变

状态标志寄存器EFLAGS

第二章 80x86微处理器简介_第20张图片

指令指针寄存器EIP

第二章 80x86微处理器简介_第21张图片

标志寄存器

状态标志寄存器

第二章 80x86微处理器简介_第22张图片

状态标志

状态标志CF(进位标志) PF(奇偶标志) AF(辅助进位标志) ZF(零标志) SF(符号标志) OF(溢出标志)

第二章 80x86微处理器简介_第23张图片

这里多说一句:溢出指的是对于8位符号数,运算结果超出了-128 ~ +127;或者对于16位符号数来说,运算结果超出了-32768 ~ +32767

零标志ZF(Zero Flag)

第二章 80x86微处理器简介_第24张图片

下面看一个例题

第二章 80x86微处理器简介_第25张图片

符号标志SF(Sign Flag)

第二章 80x86微处理器简介_第26张图片

注意:

先把十六进制转换成二进制,进行运算,如果结果超出参与运算数的位数,把最高位去掉,看最高位后面的那一位来判断

1位负,0为正

奇偶标志PF(Parity Flag)

第二章 80x86微处理器简介_第27张图片

这里一个数字代表1位(bit)

32位计算机:1字=32位=4字节,

64位计算机:1字(Word)=8字节(byte)=64位(bit)

汇编伪指令 db(字节) dw(字) dd(双字)

1dd = 2dw = 4db

一定要区分这两个概念

辅助进位标志AF(Auxiliary Carry Flag)

第二章 80x86微处理器简介_第28张图片

一定是低4位,只要低四位的任何一个位上有进位,AF就为1

进位标志CF(Carry Flag)

第二章 80x86微处理器简介_第29张图片

再次提醒:一定是最高位运算有进位,其他位没有关系,即便它后一个给最高位有一个进位,那也不是最高位自己的进位

溢出标志位OF(Overflow Flag)

第二章 80x86微处理器简介_第30张图片

溢出的判断

最高位0 + 0 = 1 1 + 1 = 0

机器数的表示范围:

  • 8位机器数:-128 ~ +127
  • 16位的表达范围:-32768 ~ +32767

第二章 80x86微处理器简介_第31张图片

状态标志寄存器的例题

第二章 80x86微处理器简介_第32张图片

这里可以参考这个链接,有十六进制:十六进制相加减时,标志位怎么判断的问题_呓语dd的博客-CSDN博客_标志位怎么判断

2.3 工作模式

工作模式

第二章 80x86微处理器简介_第33张图片

第二章 80x86微处理器简介_第34张图片

第二章 80x86微处理器简介_第35张图片

实地址模式

第二章 80x86微处理器简介_第36张图片

只能访问最低端1MB字节的物理地址空间,00000H ~ FFFFFH

保护模式

第二章 80x86微处理器简介_第37张图片

第二章 80x86微处理器简介_第38张图片

虚拟8086模式

第二章 80x86微处理器简介_第39张图片

2.4 存储器组织

标准结构

基本存储单元:

  • 8个连续的位构成,用于存储一个字节的数据,,基本存储单元也被称为字节存储单元

存储器:

  • 由一系列存储单元线性的构成,每一个基本存储单元有一个唯一的地址:物理地址

存储器功能

  • 存储数据和程序

  • 地址总线对存储器进行寻址,数据总线对存储器内容进行读写

物理地址(实际地址)

第二章 80x86微处理器简介_第40张图片

存储器分段

第二章 80x86微处理器简介_第41张图片

每个逻辑段的容量最大可达64KB,各个逻辑段之间可以是重叠的

!!!

第二章 80x86微处理器简介_第42张图片

地址类型

物理地址、段首地址、有效地址、逻辑地址

第二章 80x86微处理器简介_第43张图片

物理地址(实际地址)和逻辑地址

第二章 80x86微处理器简介_第44张图片

下面看一道例题

第二章 80x86微处理器简介_第45张图片

默认段地址

第二章 80x86微处理器简介_第46张图片

存储器数据的存取方式

高高低低原则

  • 低地址单元存放低字节数据,高地址单元存放高字节数据
    第二章 80x86微处理器简介_第47张图片

你可能感兴趣的:(汇编课程知识点总结,学习方法)