24.7.11学习笔记

1.8086/8088CPU的工作方式

8086/8088CPU工作模式(完全由硬件决定。)

为适应各种使用场合,设计时就使他们可以在两种模式下工作,即最大模式和最小模式。

  • 最小模式 就是系统中只有8086/8088一个微处理器,所有的总线控制信号都是由其产生,因此系统中的总线控制逻辑电路被减到最
  • 最大模式 相对于最小模式而言,用在中等规模的或大型的8086/8088系统中,在此系统中包含两个或多个微处理器,其中一个主处理器就是8086/8088,其他的处理器被称为协处理器。(他们是协助主处理器工作的,和8086/8088配合的协处理器有两个,一个是数值运算协处理器8087,一个是输入/输出协处理器8089。)

在最大模式下一般包括两个或多个处理器,这样主要解决主处理器和协处理器之间协调工作问题和对总线的共享控制问题。在最大模式下,CPU不直接产生总线控制信号,而是将总线开始的状态信息等信号,经一个控制信号转换电路,即8288总线控制器

另外在最大模式系统一般还有中断优先管理部件,即8289A。在8086多处理器系统中,除8086CPU外还有8089和8087,他们也是采用分时方式来占用总线。因此在多处理器系统中必须采用总线仲裁器8289配合总线控制器8288来确定每一个时刻的总线使用权赋予优先级别较高的处理器使用。


 

2.8086/8088CPU系统总线的形成

1.总线BUS概念

  • 定义:微机中各模块、各设备间传输信息的一组公用信号线。
  • 标准:在总线连接和传输信息时应该遵守的协议和规范。包括:时钟、结构、电气、机械、协议、仲裁规范等。​​​​​​​

2.三大总线

  • 地址线
  • 数据线
  • 控制线

3.8086/8088的存储器结构

8086/8088CPU的寄存器

(1)通用寄存器组 

通用数据寄存器

指令执行部件EU中有8个16位通用计算器可分为两组,一组由AX BX CX 和DX构成,称为通用数据寄存器。可以存放16位的数据或地址。也可将其当作8个8位寄存器来使用,也就是把每个通用寄存器的高半部分和低半部分分开H为高、L为低,此时只能存放数据

95c4bdb9474443458ecc5fafc32e6976.jpg

 

AX   称为累加器,是算数运算时使用的主要寄存器,所有外部设备的输入输出指令只能使用AL或AX作为数据寄存端。

BX   称为基址寄存器,可以用作数据寄存器,在访问存储器时可以存放被读写的组成单元的地址,是具有双重功能的寄存器。

CX   称为计数计算器,可以用作数据寄存器,在字符串操作、循环操作和移位操作时用作计数器。

DX   称为数据寄存器,可以用作数据寄存, 在乘、除法中作为辅助累加器,在输入输出操作中存放接口的地址。


指针和变址寄存器

4个16位寄存器,主要用来存放操作数的偏移地址(即操作数的段内地址)。

73c023bbf8f74403ba0c61851b8ec611.jpg

 SP   称为堆栈指针寄存器,在堆栈操作中存放栈点的偏移地址。

BP  称为基址指针寄存器,常用作堆栈区的基地址寄存器。

SI   称为源变址寄存器,主要用于存放地址,在字符上操作中存放操作数的偏移地址。变址寄存器内存放的地址在数据传送完成后具有自动修改的功能。

DI   称为目的变址寄存器,主要用于存放地址,在字符串操作中存放目的操作数的偏移地址。


(2)段寄存器

f6ff42768e9a4c43a7cfe4773b285698.jpg

 

8086/8088CPU总线接口部件BIU中设置有4个16位段寄存器。他们是

  • 代码段寄存器CS  (代码段存放程序指令。当程序代码超过64k时,需要分成几个段存放。CS中存放的是正在执行的程序段的段基址)
  • 数据段寄存器DS  (数据段用于存放当前使用的数据。需要第2个数据段时可以使用附加段)
  • 附加段寄存器ES
  • 堆栈段寄存器SS   (是内存中的一块存储区,用来存放专用数据)(符合先进后出后进先出的原则)(数据进出堆栈要使用专门的堆栈操作指令,SP的值在执行堆栈操作指定时根据规则自动进行修改)

(3)标志计算器FLAGS

1e9af584055f4bbc97a4119e93baf8fc.jpg

 

8086/8088CPU中设置了一个16位标志寄存器FLAGS,用来存放运算结果的特征和控制标志,格式如下 

9c37fa85c1b24596985b433a29e7c3bc.jpg

 存放的9个标志位可分为两类

  • 状态标志(表示运算结果特征)CF PF AF ZF SF OF
  • 控制标志 (用来控制CPU操作)IF DF TF

①CF   进行标志位,CF=1表示本次运算中最高位有进位(加法运算时)或有借位(减法运算时)

进行两个无符号数加法或减法运算后,如果CF=1表示运算结果超出该字长能够表示的数据范围。

②PF   奇偶标志位,PF=1表示本次运算结果的低八位中有偶数个“1”;PF=0表示有奇数“1”PF可以用来进行奇偶校验或者用来生成奇偶校验位。

③AF   辅助进位标志位。AF=1表示8位运算结果(限使用AL寄存器)中低4位向高4位有进位(加法运算时)或者有借位(减法运算时),这个标志位置在BCD数运算中起作用。

④ZF   零标志位。  ZF=1表示运算结果为0(个位全为零),否则ZF=0。

⑤SF   符号标志位。SF=1的时候,表示运算结果最高位为“1”

⑥OF   溢出标志位。OF=1表示两个用补码进行加减法的有符号数的结果超出该字长所能表示的范围。OF符号对无符号数运算结果没有意义。

⑦IF   中断允许标志位。IF=1表示允许CPU响应可屏蔽中断

⑧DF   方向标志位。在串操作指定中DF=0时表示指令执行后地址指针自动增量,串操作由低地址向高地址进行。DF标志位可通过STD的指令置位,也可通过CLD指令复位。

⑨TF   单步标志位。TF=1,控制CPU进入端口工作方式。在程序调试过程中很有用。


4.实地址模式下的存储器地址变换方法

实模式(实地址存储管理操作模式)

分段

(1)存储单元的地址

  • 定义:将存储单元编号,这个编号就是存储器地址。
  • 表示:用十六进制数来表达地址。

在存储器中,每一个字节单元都有一个与之对应的唯一的存储器地址称为物理地址。对于16位字长的PC机(8086),两个字节组成一个字(word)。

每一个字节单元都有一个与之对应的单元地址。

对于多字节单元(字,双字,四字等),其地址同样是采用最低位字节的地址来表示。

(2)存储单元的内容

  • 定义:存储单元中存放的信息称为该存储单元的内容
  • 表示:存储地址加“()”

如果用X表示某存储单元的地址,则X单元的内容可以表示为(X);

假如X单元中存放着Y,而Y本身又是一个地址,则可以用(Y)=((X))来表示Y单元的内容。

字单元由两个字节单元组成,其地址采用它低地址来表示。字存入存储器,低位字节存入低地址单元。


8086/8088CPU内存分配

存储器地址的分段

(1)分段的原因及如何分段        

  • 原因:8086/8088CPU有20根地址总线A19A18…A1A0。可以访问存储器的最大容量为2^20 B=1024KB=1MB

在8086CPU中,所有可用来存放地址的寄存器都是16位的。采用存储器地址分段的方法可以存储超16位的地址。把1MB的存储空间划分成若干段,每个段可由1~64KB个连续的字节单元组成,每个段是一个可独立寻址的逻辑单位。

在程序设计中需要设立几个段,每个段有多少个字节以及每个段的用途完全由用户自己确定,同时每个段中存储的代码或数据可以存放在段内任意单元中。

  • 分段的基本规则

在编制程序时要把存储器分成段,每个段最大可达64KB,这样段内地址可以用16位表示。

PC机对段的起始地址有限制,段不能起始于任意地址,而必须从任一小段的首地址开始。

机器规定:从0地址开始,每16个字为一小段。

在16进制表示的地址中,最低位为0(即20位地址的低4位为0)。

(2)段地址和偏移地址

  • 转地址:表示一个段的开始
  • 偏移地址:在段内相对于段起始地址的偏移值。如当偏移量为“0”时,就在这个段的起始单元;当偏移量为0FFFH时就是这个段(最大)最末一个字节单元。

CPU访问主存必须传送出物理地址,而用户编程则使用逻辑地址,每个存储单元都有两种形式的地址:物理地址和逻辑地址。

每一个存储单元的物理地址是唯一的就是这个单元的地址编码。

在程序设计中,程序员使用的是逻辑地址,而不使用物理地址,这不仅有利于程序的开发,而且对存储器的动态管理也是有利的,一个逻辑地址是由段地址和偏移地址两部分组成,而且都是无符号的16位二进制数

(3)物理地址的形成

计算公式:物理地址=段地址×10H+偏移地址

(每个存储单元只有唯一的物理地址,但它却可以由不同的段地址和不同的偏移地址组成。)

(4)段地址与段寄存器

实模式下,在8086~Pentium微处理机中,代码段的段地址放在CS中;数据段的段地址放在DS;堆栈段的段地址放到SS中;附加段的段地址放在ES中。

除非专门指定如用户自行设定之外,在一般情况下各段在存储器的分配是由操作系统负责的。每个段可以独立的占用64KB存储区,各段也允许部分重叠或完全重叠。

5efd69681be94c43b31825a421873614.jpg

 (5)隐含段和偏移寄存器

8086~Pentium微处理机中,段寄存器和偏移寄存器组合有一定的规则。

b37d9105a8824c45aca6f34687145565.jpg

 

 

 

  • 15
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值