第3章 80x86微处理器

3.1   80x86微处理器简介

      80x86微处理器是美国Intel公司生产的系列微处理器。从8086开始到目前已进入第五代微处理器:80868088)、80286803868048680586PentiumPentiumⅡ~)。其主要发展特点是:

    1.主频80864.77MHz80586166MHzPentiumⅡ~更高,可达3GHz。主频是指芯片所使用的主时钟频率,它直接影响计算机的运行速度。

    2. 数据总线808616位到8058664位。数据总线是计算机中组成各部件间进行数据传送时的公共通道。其位数(宽度)表示CPU的字长,数据总线位数越多,数据交换的速度越快。

    3.地址总线808620根到8058632根。地址总线是在对存储器或IO端口进行访问时,传送由CPU提供的要访问的存储单元或I/O端口的地址信息总线,其宽度决定了处理器能直接访问的主存容量大小。

   4.高速缓冲存储器Cache的使用,大大减少了CPU读取指令和操作数所需的时间,使CPU的执行速度显著提高。从80386以后增加了高速缓冲存储器Cache

  微机系统增加了高速缓冲存储器后,使系统的存储器体系形成三级组织结构,即由高速缓冲存储器Cache、主存和外存组成。如图3.1所示。

关于cache

        为了解决对存储器要求容量大,速度快,成本低三者之间的矛盾,目前通常采用多级存储器体系结构,即使用高速缓冲存储器、主存储器和外存储器

名 称

简称

用  途

  特 点

高速缓冲存储器

Cache

高速存取指令和数据

存取速度快,但存储容量小

主存储器

主存

存放计算机运行期间的大量程序和数据

存取速度较快,存储容量不大

外存储器

外存

存放系统程序和大型数据文件及数据库

存储容量大,位成本低

局部性原理

时间局部性: 一个数据(或指令)被访问,在不久的将来,很可能被再次使用;
空间局部性: 一个数据(或指令)被访问,它附近的数据可能很快就会被使用。

  所以,层次结构的存储器系统,可以将最近访问过的内容放入Cache,将近期访问过内容所属的整个块放入Cache

1. Cache R 是一样的吗?
R 是指令中可用名字访问的,对程序员是可见的
Cache 对程序员是透明的

Cache的引入

引入cache的原因:

大容量主存一般采用 DRAM ,相对 SRAM 速度慢,而 SRAM 速度快,但价格高。
程序和数据具有局限性,即在一个较短的时间内,程序或数据往往集中在很小的存储器地址范围内。

    
    
因此,在主存和CPU之间可设置一个速度很快而容量相对较小的存储器,在其中存放CPU当前正在使用以及一个较短的时间内将要使用的程序和数据,这样,可大大加快CPU访问存储器的速度,提高机器的运行效率。

     80x86CPU在发展过程中,存储器的管理机制也发生了较大变化。

  8086/8088CPU:分段实方式

  80286CPU:分段实方式、保护方式(可提供虚拟存储管理和多任务管理机制)。

  80386~80586CPU:分段实方式、保护方式、虚拟8086方式(可同时模拟多个8086处理器工作)。

     虚拟存储管理:为用户提供一个比实际主存空间大得多的程序地址空间,从而可使用户程序的大小不受主存空间的限制。

  多任务管理:可允许多个用户或一个用户的多个任务同时在机器上运行。

3.2 8086/8088微处理器

8088 8086 基本类似
16 CPU
AB 宽度 20 位, 可以直接寻址 2 20 1M 个存储单元和 64K I O 端口。
指令格式均相同
8088 8086 差别:
指令队列缓冲器: 8088 4 字节, 8086 6 字节
内部数据总线引脚: 8088 8 根, 8086 16 根, 8086 是真正的 16 位机,而 8088 是准 16 位机, 8088 为准 16 CPU ,内部 DB 16 位,但外部仅为 8 位, 16 位数据要分两次传送
部分引脚不同
设计原因:
Intel8088 是准 16 位处理器,其指令系统与 8086 完全兼容, CPU 内部结构仍为 16 位,但外部数据总线是 8 位。这样设计的目的主要是与原有的 8 位外围接口芯片兼容。
程序的执行过程

指令预取队列(IPQ)

指令的一般执行过程:

 取指令    指令译码   读取操作数   

     执行指令    存放结果

串行工作方式:


 1CPU访问存储器(存取数据或指令)时要等待总线操作的完成

 2CPU执行指令时总线处于空闲状态

 缺点:CPU无法全速运行

 解决:总线空闲时预取指令,使CPU需要指令时能立刻得到

并行工作方式:

8086CPU 采用并行工作方式

8086如何实现并行工作方式

8086 的结构

       8086微处理器为了充分使用总线以提高程序的执行速度被设计成为两个独立的功能部件:执行部件(EU)和总线接口部件(BIU)。

BIU 不断地从存储器取指令送入 IPQ EU 不断地从 IPQ 取出指令执行
EU BIU 构成了一个简单的 2 工位流水线
指令预取队列 IPQ 是实现流水线操作的关键(类似于工厂流水线的传送带)
新型 CPU 将一条指令划分成更多的阶段,以便可以同时执行更多的指令
例如, PIII 14 个阶段, P4 20 个阶段 ( 超级流水线 )
结论

指令预取队列的存在使 EU BIU 两个部分可同时进行工作,从而带来了以下两个好处:
提高了 CPU 的效率
降低了对存储器存取速度的要求
总线接口单元 BIU

BusInterface Unit
组成:

    总线接口部件由段寄存器、指令指针、地址形成逻辑、总线控制逻辑和指令队列等组成。

任务:

    BIU与外部总线连接为执行部件EU完成所有的总线操作,并计算形成20位的内存物理地址。

功能:

   负责完成CPU与存储器(内存或主存)或I/O设备之间的数据传送。

       ① 取指令到指令队列缓冲器

       ② 从内存或外设端口读取数据

       ③ 向内存或外设端口发送数据

       ④ 形成20位物理地址

   俗称完成“外勤”工作。

在执行转移程序时, BIU 使指令预取队列复位,从指定的新地址取指令,并立即传给执行单元执行。

段寄存器(SegmentRegister)

   8086系统中把可直接寻址的1MB内存空间分为称作“段”的逻辑区域,段的段地址由称为“段寄存器”的416位寄存器决定:

   (1)    代码段寄存器CS(16)

   (2)    堆栈段寄存器SS(16)

   (3)    数据段寄存器DS(16)

   (4)    附加段寄存器ES(16)


指令指针寄存器IP(16)

    指令指针IP是一个16位专用寄存器,它指向当前需要取出的指令字节,当BIU从内存中取出一个指令字节后,IP就自动指向下一条指令。

地址加法器的作用

逻辑地址和物理地址

   ⑴ 逻辑地址:由段地址(逻辑段起始地址的高16位)和偏移地址(16位)表示的存储单元的地址称为逻辑地址,记为:

   段地址∶偏移地址

   ⑵ 物理地址:由CPU内部总线接口单元BIU中的地址加法器根据逻辑地址产生的20位存储单元地址称为物理地址。


指令队列缓冲器

    指令指针IP是一个16位专用寄存器,它指向当前需要取出的指令字节,当BIU从内存中取出一个指令字节后,IP就自动指向下一条指令。

执行单元 EU

Execution Unit
组成:

    执行部件EU由通用寄存器、标志寄存器、运算器(ALU)EU控制系统等组成。

任务:

       ① 向BIU提供所需要访问的内存或IO端口的地址,

       ② 对通用寄存器、标志寄存器和指令操作数进行管理。

v 功能 : 执行指令

  

  从指令队列中取指令代码    -->    译码-->

  ALU中完成数据的运算   -->      运算结果

  的特征保存在标志寄存器FLAGS中。



偏移地址和段寄存器的默认关系

CS ——IP
DS ——BX SI DI ,位移量
SS ——BP SP
ES ——DI (串操作)


3.38086/8088的寄存器、存储器和I/O组织

   一、 8086/8088寄存器结构

   8086/8088微处理器中可供程序员使用的有1416位寄存器,这14个寄存器按其用途可分为通用寄存器、指令指针、控制寄存器和段寄存器等4类。


   1. 通用寄存器

   8个通用寄存器,可分为两组。

   (1)数据寄存器。

     累加器   AX(16)→AHAL(高、低各8位)

     基址寄存器BX(16)→BHBL(高、低各8位)

     计数寄存器CX(16)→CHCL(高、低各8位)

     数据寄存器DX(16)→DHDL(高、低各8位)

    数据寄存器的特点是,这416位寄存器可分为高8(AHBHCHDH)与低8(ALBLCLDL),这两组8位寄存器可分别寻址、独立操作。

    (2) 指针寄存器和变址寄存器。另外4个通用寄存器是:

         堆栈指针SP(16)

        基址指针BP(16)

        源变址寄存器SI(16)

        目的变址寄存器DI(16)

   416位寄存器只能按16位进行存取操作,主要用来形成操作数的地址,用于堆栈操作和变址运算中计算操作数的有效地址。

    2. 控制寄存器

(1)指令指针寄存器IP(16)

    指令指针IP是一个16位专用寄存器,它指向当前需要取出的指令字节,当BIU从内存中取出一个指令字节后,IP就自动指向下一条指令

(2) 标志寄存器FLAG(16)

    8086/8088有一个16位的标志寄存器FLAGS,在FLAGS中有意义的有9位,其中6位是状态位:CFPFAFZFSFOF3位是控制位:TFIFDF

标志寄存器(Flags)


状态标志:表示处理器当前运行的状态。

CF(Carry Flag)——进位标志,当进行加减运算时,若最高位发生进位或错位,则CF为1,否则为0。该标志通常用于判断无符号数运算结果是否超出了计算机所能表示的无符号数的范围

AF(Auxiliary Flag)——辅助进位标志,低4位向前有进()位,AF=1

ZF(Zero Flag)——零标志,若当前运算结果为0ZF=1

SF(Sign Flag)——符号标志,最高位的值为1时,SF=1

OF(Overflow Flag)——溢出标志,当运算结果超出了带符号数所能表示的数值范围,即溢出时,OF=1。该标志位通常用来判断带符号数运算结果是否溢出

PF(Parity Flag)——/偶标志,运算结果低8位中1的个数为偶数个,PF=1

控制标志:控制处理器的某一特定功能。

IF——可屏蔽中断允许标志,IF=1表示允许

DF——方向标志,DF=0地址增量变化;DF=1地址减量变化

TF——陷阱标志(单步执行标志)

标志寄存器举例


最高位向前没有进位,CF=0

8位中偶数为4个, PF=1

4位向前有进位,  AF=1

运算结果不为0,    ZF=0

最高位=1,         SF=1

次高位向前有进位,  OF=Cs  Cp=1(∵Cs=0,Cp=1)

    二、8086微处理器的引脚功能

    8086微处理器是Intel公司的第三代微处理器16位微处理器,它采用40引脚的DIP(双列直插)封装。时钟频率有3种:5MHz(8086)8MHz(8086-1)10MHz(8086-2)

 1.引脚功能说明

    808640条引脚信号按功能可分为4部分地址总线、数据总线、控制总线以及其他(时钟与电源)

引脚分类

引脚定义的方法可大致分为:

每个引脚只传送一种信息( RD 等);
引脚电平的高低不同的信号( IO/M 等);
CPU 工作于不同方式有不同的名称和定义( WR/LOCK 等);
分时复用引脚( AD 7 AD 0 等) ;
引脚的输入和输出分别传送不同的信息( RQ/GT 等)。

地址总线和数据总线(20条)

v AD15 ~ AD0 为地址/数据总线, A19 ~ A16 S6 ~ S3 为地址/状态总线。其中:
v 数据总线用来在 CPU 与内存储器 ( I O 设备 ) 之间交换信息,为双向、三态信号;
v 地址总线由 CPU 发出,用来确定 CPU 要访问的内存单元 ( I O 端口 ) 的地址信号,为输出、三态信号。

电源地线及时钟

v CLK :时钟信号 ( 输入 ) 。该信号为 8086CPU 提供基本的定时脉冲,其占空比为 1∶3( 高电平持续时间:重复周期= 1∶3) ,以提供最佳的内部定时。
v Vcc :电源 ( 输入 ) ,要求接上正电压 (+5V±10 )
v GND :地线、两条接地线。

控制总线(16条)

   控制总线是传送控制信号的一组信号线,有些是输出线,用来传输CPU送到其他部件的控制命令(如读、写命令,中断响应等);有的是输入线,由外部向CPU输入控制及请求信号(复位、中断请求等)

工作方式和RESET

v RESET :输入,为高时, CPU 执行复位;
v MN/MX :工作方式控制,高电平为最小工作方式,单 CPU 工作,低电平为最大工作方式,多处理器合作。

中断相关的引脚

v NMI :非屏蔽中断请求信号,不受 flags 中中断允许标志位 IF 的影响;
v INTR :可屏蔽中断请求信号,如果有效,再查看 IF 信息;
v INTA :中断响应信号,对于 INTR 信号做出响应;

读写内存的信号

v RD :读控制信号;
v WR :写控制信号;
v M/IO :指出当前访问的是存储器还是 I/O 接口。

     低:I/O接口,高:内存;

v READY : 表示数据准备好的信号, CPU T3 状态查询该信号,如果有效,说明数据已经准备好,否则插入若干个等待状态 Tw
v WR=1 RD=0 M/IO = 1 时,表示 CPU 当前正在            

最小工作方式

v BHE/S7 :高 8 位数据总线允许信号;低,表示高 8 位有效,高:表示低 8 位有效;
v ALE :地址锁存信号;在 T1 结束的时候, ALE 由高向低跳变时锁存。高: AB 地址有效;
v DT/ R :三态,输出。数据传送方向,高: CPU 输出,低: CPU 输入;
v DEN :三态,输出。低电平时,表示 DB 上的数据有效;

其余引脚

v HOLD :总线请求信号,当 8086CPU 之外的总线主设备要求占用总线时,通过该引脚向 CPU 发送一个高电平;
v HLDA :总线请求相应信号,当 CPU 收到 HOLD 信号,如果 CPU 允许让出总线,就在当前总线周期完成时, T4 状态发送一个 HLDA 信号,此时发送了 HOLD 信号的设备获取总线使用权;
v TEST :用于使 CPU 与外部硬件同步,当 CPU 在执行 WAIT 指令时, CPU 会对该引脚进行测试。
  2.8088 的引脚与 8086 的区别

⑴8088 的地址/数据复用线为 8 条,即 AD7 ~ AD0 ,而 A15 ~ A8 为单一的地址线。
    8088 中无 BHE S 7 信号,该引脚为 SS0— 状态信号线。
    8088 的存储器 / 输入输出控制线为 IO/M ,即该信号为高电平时是 I O 端口访问,为低电平时是存储器访问,这与 8086 M/IO 线正好相反。

3. 最小方式与最大方式

    ⑴ 最小方式下的基本配置

    8086CPU MN MX 引脚接 +5V 电源时, 8086CPU 工作于最小方式,用于构成小型的单处理机系统。在这种方式中,除 8086CPU 以及信息传送对象存储器和 I O 接口电路外,还有三部分支持系统工作的器件:时钟发生器、地址锁存器和数据收发器。


最大方式下的基本配置

   8086CPU MN MX 引脚接地时, 8086CPU 工作于最大方式,用于构成多处理机和协处理机系统。同最小方式下 8086 系统配置相比较,最大方式系统增加了一片专用的总线控制芯片 8288


   三、8086微处理器的总线时序

   1.总线时序

   ⑴ 指令周期

   每条指令的执行由取指令、译码和执行等操作组成,执行一条指令所需要的时间称为指令周期(InstructionCycle),不同指令的指令周期是不等长的,一个指令周期由一个或若干个总线周期组成。

    总线周期

   8086CPU与外部交换信息总是通过总线进行的。CPU的每一个这种信息输入、输出过程所需要的时间称为总线周期(BusCycle),一般一个总线周期由四个时钟周期组成。

   ⑶ 时钟周期

   时钟脉冲的重复周期称为时钟周期(ClockCycle)。时钟周期是CPU的时间基准,由计算机的主频决定。如8086的主频为5MHz1个时钟周期就是200ns

   2. 几种基本时序


   总线读操作时序

   8086CPU 进行存储器或I/O端口读操作时,总线进入读周期。基本的读周期由4个时钟周期组成:T1T2T3T4CPUT3T4之间从总线上接收数据。当所选中的存储器和外设的存取速度较慢时,则在T3T4之间将插入1个或几个等待周期TW。图3.38086最小方式下的总线读操作时序图。下面对图中表示的读操作时序进行说明。


    总线写操作时序

   总线写操作就是指CPU向存储器或IO端口写入数据。图3.48086在最小模式下的总线写操作时序图。   

    总线写操作时序与总线读操作时序基本相同,但也存在以下不同之处:


    (a) 对存储器或IO端口操作的选通信号不同。总线读操作中,选通信号是RD,而总线写操作中是WR

    (b)T2状态中,AD15~AD0上地址信号消失后,AD15~AD0的状态不同。总线读操作中,此时AD15~AD0进入高阻状态,并在随后的状态中保持为输入方向;而在总线写操作中,此时CPU立即通过AD15~AD0输出数据,并一直保持到T4状态中。

    中断响应操作时序

   8086CPUINTR引脚上有一有效电平(高电平),且标志寄存器IF=1,则8086CPU在执行完当前的指令后响应中断,在响应中断时CPU执行两个中断响应周期。图3.58086在最小模式下的中断响应操作时序图。

   

    CPU的中断响应周期包括两个总线周期,在每个总线周期中都从INTA端输出一个负脉冲,其宽度是从T2状态开始持续到T4状态的开始。第一个总线周期的INTA负脉冲,用来通知中断源,CPU准备响应中断,中断源应准备好中断类型码,在第二个总线周期的INTA负脉冲期间,外设接口(一般经中断控制器)应立即把中断源的中断类型码送到数据线的低8AD7AD0上。 

    二、8086/8088存储器组织

   1.存储器组织

   8086/8088微处理器有20条地址线,可以配置1MB的内存储器。存储空间都按8(即字节)进行组织,每个存储单元存储一个字节数据,若存放数据(16),则存放在相邻两个存储单元中,高字节存放在高地址单元,低字节存放在低地址单元。每个存储单元都有一个20位的地址,这1 M个存储单元对应的地址为00000H~FFFFFH,如图3.10所示。

    一个存储单元中存放的信息称为该存储单元的内容。

    00001H单元的内容为9FH,记为:(00001H)=9FH

    如从地址0011FH开始的两个连续单元中存放一个字型数据,则该数据为DF46H,记为:(0011FH)=DF46H


    80861M存储空间实际上分为两个512KB的存储体,又称存储库,分别叫高位库和低位库。


    地址总线A19~A1可同时对高、低位库的存储单元寻址,A0BHE用于对库的选择。

    A00时,选择偶数地址的低位库;

    BHE0时,选择奇数地址的高位库;

    当两者均为0时,则同时选中高低位库。

    需注意的是,对于规则字(从偶数地址开始存放的字)的读/写操作只需一个总线周期,而非规则字(从奇数地址开始存放的字)的读/写操作需两个总线周期。


    3.14  8086存储器的偶数和奇数地址读字节和字

(a) 读偶地址单元中的字节; (b) 读奇地址单元中的字节;

(c)   读偶地址单元中的字;    (d) 读奇地址单元中的字

    2. 存储器分段

    80868088CPU中有关可用来存放地址的寄存器如IPSPSIDIBP等都是16位的,故只能直接寻址64KB。为了对1M个存储单元进行管理,80868088采用了段结构的存储器管理方法。

    80868088将整个存储器分为许多逻辑段,但只有4种类型:代码段、数据段、堆栈段和附加段。每个逻辑段的容量小于或等于64KB,允许它们在整个存储空间中浮动。各个逻辑段之间可以紧密相连,也可以互相重叠(局部重叠和完全重叠),还可以相互隔开。


   3. 逻辑地址和物理地址

   ⑴ 逻辑地址:由段地址(逻辑段起始地址的高16位)和偏移地址(16位)表示的存储单元的地址称为逻辑地址,记为:

   段地址∶偏移地址

   ⑵ 物理地址:由CPU内部总线接口单元BIU中的地址加法器根据逻辑地址产生的20位存储单元地址称为物理地址。如图3.7所示。

   物理地址和逻辑地址的关系为:

   物理地址=段地址×10H+偏移地址

在程序设计中,段地址是由段寄存器(如CSDSSSES)提供,偏移地址通常是由地址寄存器(如IPBXBPSPSIDI等)及立即数等提供。


 对于任何一个物理地址来说,可以唯一被包含在一个逻辑段中,也可以包含在多个重叠的逻辑段中,只要能得到它所在段的首地址和段内的相对地址,就可以对它进行访问。即一个物理地址可以对应多个逻辑地址。


4.堆栈操作

80868088系统中的堆栈使用段定义语句在存储器中定义的一个堆栈段,和其它逻辑段一样,它可以在1M字节的存储空间中浮动,其容量可达64KB,这是一个具有先进后出特性的存储区域,且属于向下生长的堆栈。

 堆栈由SSSP来寻址。SS给出堆栈段的段地址,而SP给出当前栈顶(偏移地址),即指出从段地址到栈顶的偏移量。

若已知当前 SS 1050H SP 0008H AX 1234H ,则 8086 系统中堆栈的入栈和出栈操作如下图所示。


  三、8086/8088I/O组织

   80868088系统和外部设备之间是通过IO接口电路来联系的。每个IO接口都有一个或几个端口。在微机系统中每个端口分配一个地址号,称为端口地址。一个端口通常为I/O接口电路内部的一个寄存器或一组寄存器。

   8086/8088CPU用地址总线的低16位作为对8IO端口的寻址线,所以80868088系统可访问的8IO端口有65536(64K)个。两个编号相邻的8位端口可以组成一个16位的端口。

   8086CPUIO设备的读写与对存储器的读写操作类似。当CPU与偶地址的IO设备实现16位数据的存取操作时,可在一个总线周期内完成;当CPU与奇地址的IO设备实现16位数据的存取操作时,要占用两个总线周期才能完成。


1.简述8086/8088CPU中BIU和EU的作用,并说明其并行工作过程。

      答:(1) BIU的作用:计算20位的物理地址,并负责完成CPU与存储器或I/O端口之间的数据传送。

             (2) EU的作用:执行指令,并为BIU提供所需的有效地址。

             (3) 并行工作过程:当EU从指令队列中取出指令执行时,BIU将从内存中取出指令补充到指令队列中。这样就实现了取指和执行指令的并行工作。

   

2.8086/8088CPU内部有哪些寄存器?其主要作用是什么?

      答:80868088CPU内部共有14个寄存器,可分为4类:数据寄存器4个,地址寄存器4个,段寄存器4个和控制寄存器2个。其主要作用是:

             (1) 数据寄存器:一般用来存放数据,但它们各自都有自己的特定用途。

           AX(Accumulator)称为累加器。用该寄存器存放运算结果可使指令简化,提高指令的执行速度。此外,所有的IO指令都使用该寄存器与外设端口交换信息。  

           BX(Base)称为基址寄存器。用来存放操作数在内存中数据段内的偏移地址,

           CX(Counter)称为计数器。在设计循环程序时使用该寄存器存放循环次数,可使程序指令简化,有利于提高程序的运行速度。  

           DX(Data)称为数据寄存器。在寄存器间接寻址的IO指令中存放IO端口地址;在做双字长乘除法运算时,DXAX一起存放一个双字长操作数,其中DX存放高16位数。

             (2) 地址寄存器:一般用来存放段内的偏移地址。

            SP(Stack Pointer)称为堆栈指针寄存器。在使用堆栈操作指令(PUSHPOP)对堆栈进行操作时,每执行一次进栈或出栈操作,系统会自动将SP的内容减2或加2,以使其始终指向栈顶。

           BP(Base Pointer)称为基址寄存器。作为通用寄存器,它可以用来存放数据,但更经常更重要的用途是存放操作数在堆栈段内的偏移地址。

           SI(Source Index)称为源变址寄存器。SI存放源串在数据段内的偏移地址。

             DI(Destination Index)称为目的变址寄存器。DI存放目的串在附加数据段内的偏移地址。

             (3) 段寄存器:用于存放段地址

           CS(Code Segment)称为代码段寄存器,用来存储程序当前使用的代码段的段地址。 CS的内容左移4位再加上指令指针寄存器IP的内容就是下一条要读取的指令在存储器中的物理地址。

           DS(Data Segment)称为数据段寄存器,用来存放程序当前使用的数据段的段地址。 DS的内容左移4位再加上按指令中存储器寻址方式给出的偏移地址即得到对数据段指定单元进行读写的物理地址。

           SS(Stack Segment)称为堆栈段寄存器,用来存放程序当前所使用的堆栈段的段地址。堆栈是存储器中开辟的按“先进后出”原则组织的一个特殊存储区,主要用于调用子程序或执行中断服务程序时保护断点和现场。

           ES(Extra Segment)称为附加数据段寄存器,用来存放程序当前使用的附加数据段的段地址。附加数据段用来存放字符串操作时的目的字符串。

             (4) 控制寄存器

           IP(Instmcdon Pointer)称为指令指针寄存器,用来存放下一条要读取的指令在代码段内的偏移地址。用户程序不能直接访问IP

           FLAGS称为标志寄存器,它是一个16位的寄存器,但只用了其中9位,这9位包括(个状态标志位和3个控制标志位。它用来反映算术运算和逻辑运算结果的一些特征,或用来控制CPU的某种操作。

 

3.8086/8088CPU中有哪些寄存器可用来指示操作数在存储器中某段内的偏移地址?

      答:可用来指示段内偏移地址的寄存器共有6个:IPSPBPBXSIDI

 

4.8086/8088CPU中标志寄存器FLAGS有哪些标志位?它们的含义和作用如何?

      答:标志寄存器中的标志共有9个,分为两类:状态标志6个和控制标志3个。其作用是:

             (1) 状态标志:用来反映算术和逻辑运算结果的一些特征。

           CF(Carry Flag)—进位标志位。当进行加减运算时,若最高位发生进位或借位,则CF1,否则为0。该标志位通常用于判断无符号数运算结果是否超出了计算机所能表示的无符号数的范围。

           PF(Parity Flag)—奇偶标志位。当指令执行结果的低8位中含有偶数个1,PF1,否则为0

           AF(Auxiliary Flag)—辅助进位标志位。当执行一条加法或减法运算指令时,若结果的低字节的低4位向高4位有进位或借位,则AF1,否则为0

           ZF(Zero Flag)—零标志位。若当前的运算结果为0,则ZF1,否则为00

           SF(Sign Flag)—符号标志位。当运算结果的最高位为1时,SF=1,否则为00

           OF(Overflow Flag)—溢出标志位。当运算结果超出了带符号数所能表示的数值范围,即溢出时,OF=1,否则为0。该标志位通常用来判断带符号数运算结果是否溢出o

            (2)控制标志位:用来控制CPU的操作,由程序设置或清除。它们是:

            TF(TrapFlag)—跟踪(陷阱)标志位。它是为测试程序的方便而设置的。若将TF180868088CPU处于单步工作方式,否则,将正常执行程序。

           IP(Interrupt Flag)—中断允许标志位。它是用来控制可屏蔽中断的控制标志位。若用STI指令将IF1,表示允许CPU接受外部从INTR引脚上发来的可屏蔽中断请求信号;若用CLI指令将IP0,则禁止CPU接受可屏蔽中断请求信号。IF的状态对非屏蔽中断及内部中断没有影响。

           DF(DirectionFlag)—方向标志位。若用STDDF1,串操作按减地址方式进行,也就是说,从高地址开始,每操作一次地址自动递减;若用CLDDF0,则串操作按增地址方式进行,即每操作一次地址自动递增。

 

5.8086/8088CPU的地址总线有多少位?其寻址范围是多少?

      答:8086/8088地址总线有20根,寻址范围1MB

 

6.什么叫指令队列?8086/8088CPU中指令队列有什么作用?其长度分别是多少?

      答:(1) 指令队列:采用“先进先出”原则,按顺序存放预执行指令的缓冲器称为指令队列。

           (2) 指令队列的作用:存放EU将要执行的指令,使CPU的取指和执行指令能并行工作。

             (3) 指令队列的长度:80866个字节,80884个字节。

 

7.Intel8086与8088有何区别?

      答:80868088的区别有三处:

             (1) 外部数据总线位数不同(即地址/数据分时复用引脚条数不同);

                    808616位:AD15AD0 

                    8088 8位:AD7AD0

             (2) 内部指令队列缓冲器长度不同;

                    80866个字节。当指令队列出现2个空字节时,BIU将取指补充。

                    80864个字节。当指令队列出现1个空字节时,BIU将取指补充。

             (3) 外部某些控制总线定义不同。

                 808628号引脚定义为MIO(S2)8088定义为IOM(S2)

                 808634号引脚定义为BHES78088定义为SS0(HIGH)

 

8.简述8086 CPU使用地址锁存信号ALE将地址A15~A0与数据D15~D0分开的工作原理。

      答:在任何一个总线周期的T1状态,ALE均为高电平,以表示当前地址/数据复用线上的输出的是地址信息,在ALE由高变低的下降沿时把地址装入地址锁存器,而在T2T3T4状态,ALE均为低电平,以表示当前地址/数据复用线上的输出的是数据信息,此时通过数据收发器进行传送。

 

9.什么是逻辑地址?什么是物理地址?若已知逻辑地址为BA00:A800,试求物理地址。

      答:逻辑地址:由段地址和偏移地址表示的存储单元地址称为逻辑地址。

             物理地址:CPU对存储器进行访问时实际所使用的20位地址称为物理地址。

               逻辑地址为BA00H:A800H

               物理地址=BA00H×10HA800HC4800H

 

10.简述堆栈指针寄存器SP的功能及堆栈的操作过程。

      答:(1) SP的功能:指示进栈和出栈操作时的偏移地址。

             (2) 堆栈的操作过程:进栈时,先将SP2,再将数据压入堆栈(即先移后入);出栈时,先将数据弹出堆栈,再将SP+2(即先出后移)。
















  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微机课后题目答案啊 微机接口技术练习题解 第1 绪论 1. 计算机分那几类?各有什么特点? 答:传统上分为三类:大型主机、小型机、微型机。大型主机一般为高性能的并行处理系统, 存储容量大,事物处理能力强,可为众多用户提供服务。小型机具有一定的数据处理能力,提供一定用户规模的信息服务,作为部门的信息服务中心。微型机一般指在办公室或家庭的桌面或可移动的计算系统,体积小、价格低、具有工业化标准体系结构,兼容性好。 2. 简述微处理器、微计算机及微计算机系统三个术语的内涵。 答:微处理器是微计算机系统的核心硬件部件,对系统的性能起决定性的影响。微计算机包括微处理器、存储器、I/O接口电路及系统总线。微计算机系统是在微计算机的基础上配上相应的外部设备和各种软件,形成一个完整的、独立的信息处理系统。 3. 80X86微处理器有几代?各代的名称是什么? 答:从体系结构上可分为3代: ◆ 8080/8085:8位机。 ◆ 8086/8088/80286:16位机。 ◆ 80386/80486:32位机。 第2 微处理器结构及微计算机的组成 1. 8086是多少位的微处理器?为什么? 答:8086是16位的微处理器,其内部数据通路为16位,对外的数据总线也是16位。 2. EU与BIU各自的功能是什么?如何协同工作? 答:EU是执行部件,主要的功能是执行指令。BIU是总线接口部件,与片外存储器及I/O接口电路传输数据。EU经过BIU进行片外操作数的访问,BIU为EU提供将要执行的指令。EU与BIU可分别独立工作,当EU不需BIU提供服务时,BIU可进行填充指令队列的操作。 3. 8086/8088与其前一代微处理器8085相比,内部操作有什么改进? 答:8085为8位机,在执行指令过程中,取指令与执行执令都是串行的。8086/8088由于内部有EU和BIU两个功能部件,可重叠操作,提高了处理器的性能。 4. 8086/8088微处理器内部有那些寄存器,它们的主要作用是什么? 答:执行部件有8个16位寄存器,AX、BX、CX、DX、SP、BP、DI、SI。AX、BX、CX、DX一般作为通用数据寄存器。SP为堆栈指针存器,BP、DI、SI在间接寻址时作为地址寄存器或变址寄存器。总线接口部件设有段寄存器CS、DS、SS、ES和指令指针寄存器IP。段寄存器存放段地址,与偏移地址共同形成存储器的物理地址。IP的内容为下一条将要执行指令的偏移地址,与CS共同形成下一条指令的物理地址。 5. 8086对存储器的管理为什么采用分段的办法? 答:8086是一个16位的结构,采用分段管理办法可形成超过16位的存储器物理地址,扩大对存储器的寻址范围 (1MB,20位地址)。若不用分段方法,16位地址只能寻址64KB空间。 6.在8086中,逻辑地址、偏移地址、物理地址分别指的是什么?具体说明。 答:逻辑地址是在程序中对存储器地址的一种表示方法,由段地址和段内偏移地址两部分组成,如1234H:0088H。偏移地址是指段内某个存储单元相对该段首地址的差值,是一个16位的二进制代码。物理地址是8086芯片引线送出的20位地址码,用来指出一个特定的存储单元。 7.给定一个存放数据的内存单元的偏移地址是20C0H,(DS)=0C00EH,求出该内存单元的物理地址。 答:物理地址:320F8H。 8.8086/8088为什么采用地址/数据引线复用技术? 答:考虑到芯片成本,8086/8088采用40条引线的封装结构。40条引线引出8086/8088的所有信号是不够用的,采用地址/数据线复用引线方法可以解决这一矛盾,从逻辑角度,地址与数据信号不会同时出现,二者可以分时复用同一组引线。 9. 80868088的主要区别是什么? 答:8086有16条数据信号引线,8088只有8条;8086片内指令预取缓冲器深度为6字节,8088只有4字节。 10. 怎样确定8086的最大或最小工作模式?最大、最小模式产生控制信号的方法有何不同 答:引线MN/MX#的逻辑状态决定8086的工作模式,MN/MX#引线接高电平,8086被设定为最小模式,MN/MX#引线接低电平,8086被设定为最大模式。 最小模式下的控制信号由相关引线直接提供;最大模式下控制信号由8288专用芯片译码后提供,8288的输入为8086的S2#~S0#三条状态信号引线提供。 11. 8086被复位以后,有关寄存器的状态是什么?微处理器从何处开始执行程序? 答:标志寄存器、IP、DS、SS、ES和指令队列置0,CS置全1。处理器从FFFFOH存储单元取指令并开始执行。 12.8086基本总线周期是如何组成的?各状态中完成什么基本操作? 答:基本总线周期由4个时钟(CLK)周期组成,按时间顺序定义为T1、T2、T3、T4。在T1期间8086发出访问目的地的地址信号和地址锁存选通信号ALE;T2期间发出读写命令信号RD#、WR#及其它相关信号;T3期间完成数据的访问;T4结束该总线周期。 13.结合8086最小模式下总线操作时序图,说明ALE、M/IO#、DT/R#、RD#、READY信号的功能。 答:ALE为外部地址锁存器的选通脉冲,在T1期间输出;M/IO#确定总线操作的对象是存储器还是I/O接口电路,在T1输出;DT/R#为数据总线缓冲器的方向控制信号,在T1输出;RD#为读命令信号;在T2输出;READY信号为存储器或I/O接口“准备好”信号,在T3期间给出,否则8086要在T3与T4间插入Tw等待状态。 14.8086中断分哪两类?8086可处理多少种中断? 答:8086中断可分为硬件中断和软件中断两类。8086可处理256种类型的中断。 15.8086可屏蔽中断请求输入线是什么?“可屏蔽”的涵义是什么? 答:可屏蔽中断请求输入线为INTR;“可屏蔽”是指该中断请求可经软件清除标志寄存器中IF位而被禁止。 16.8086的中断向量表如何组成?作用是什么? 答:把内存0段中0~3FFH区域作为中断向量表的专用存储区。该区域存放256种中断的处理程序的入口地址,每个入口地址占用4个存储单元,分别存放入口的段地址与偏移地址。 17.8086如何响应一个可屏蔽中断请求?简述响应过程。 答:当8086收到INTR的高电平信号时,在当前指令执行完且IF=1的条件下,8086在两个总线周期中分别发出INTA#有效信号;在第二个INTA#期间,8086收到中断源发来的一字节中断类型码;8086完成保护现场的操作,CS、IP内容进入堆栈,请除IF、TF;8086将类型码乘4后得到中断向量表的入口地址,从此地址开始读取4字节的中断处理程序的入口地址,8086从此地址开始执行程序,完成了INTR中断请求的响应过程。 18.什么是总线请求?8086在最小工作模式下,有关总线请求的信号引脚是什么? 答:系统中若存在多个可控制总线的主模块时,其中之一若要使用总线进行数据传输时,需向系统请求总线的控制权,这就是一个总线请求的过程。8086在最小工作模式下有关总线请求的信号引脚是HOLD与HLDA。 19.简述在最小工作模式下,8086如何响应一个总线请求? 答:外部总线主控模块经HOLD引线向8086发出总线请求信号;8086在每个时钟周期的上升沿采样HOLD引线;若发现HOLD=1则在当前总线周期结束时(T4结束)发出总线请求的响应信号HLDA;8086使地址、数据及控制总线进入高阻状态,让出总线控制权,完成响应过程。 20.在基于8086的微计算机系统中,存储器是如何组织的?是如何与处理器总线连接的? BHE#信号起什么作用? 答:8086为16位处理器,可访问1M字节的存储器空间;1M字节的存储器分为两个512K字节的存储体,命名为偶字节体和奇字节体;偶体的数据线连接D7~D0,“体选”信号接地址线A0;奇体的数据线连接D15~D8,“体选”信号接BHE#信号;BHE#信号有效时允许访问奇体中的高字节存储单元,实现8086的低字节访问、高字节访问及字访问。 21.“80386是一个32位微处理器”,这句话的涵义主要指的是什么? 答:指80386的数据总线为32位,片内寄存器和主要功能部件均为32位,片内数据通路为32位。 22.80X86系列微处理器采取与先前的微处理器兼容的技术路线,有什么好处?有什么不足? 答:好处是先前开发的软件可以在新处理器组成的系统中运行,保护了软件投资。缺点是处理器的结构发展受到兼容的约束,为了保持兼容性增加了硅资源的开销,增加了结构的复杂性。 23.80386内部结构由哪几部分组成?简述各部分的作用。 答:80386内部结构由执行部件(EU)、存储器管理部件(MMU)和总线接口部件(BIU)三部分组成。EU包括指令预取部件、指令译码部件、控制部件、运算部件及保护检测部件,主要功能是执行指令。存储器管理部件包括分段部件、分页部件,实现对存储器的分段分页式的管理,将逻辑地址转换成物理地址。总线接口部件作用是进行片外访问:对存储器及I/O接口的访问、预取指令;另外的作用是进行总线及中断请求的控制 24.80386有几种存储器管理模式?都是什么? 答:80386有三种存储器管理模式,分别是实地址方式、保护方式和虚拟8086方式 25.在不同的存储器管理模式下,80386的段寄存器的作用是什么? 答:在实地址方式下,段寄存器与8086相同,存放段基地址。在保护方式下,每个段寄存器还有一个对应的64位段描述符寄存器,段寄存器作为选择器存放选择符。在虚拟8086方式下,段寄存器的作用与8086相同。 26.试说明虚拟存储器的涵义,它与物理存储器有什么区别?80386虚拟地址空间有多大? 答:虚拟存储器是程序员面对的一个巨大的、可寻址的存储空间,这个空间是内存与外存联合形成的,在操作系统的管理下,程序可象访问内存一样去访问外存而获得所需数据。物理存储器是指机器实际拥有的内存储器,不包括外存。80386的虚拟地址空间为64TB大。 27.试说明描述符的分类及各描述符的作用。 答:描述符分为三类:存储器段描述符、系统段描述符、门描述符。存储器段描述符由8字节组成,它用来说明一个段中保存信息的情况。32位段基地址和20位段界限值定位了该段在存储空间中的位置,其它有关位决定访问权限及段的长度单位。系统段描述符与存储器段描述符大多数字节段相同,有关访问权及属性字节段有些不同。门描述符用来改变程序的特权级别、切换任务的执行以及指出中断服务程序的入口。 28.描述符表的作用是什么?有几类描述符表? 答:描述符表顺序存放一系列描述符,描述符表定义了在80386系统中被使用的全部存储器段。有3类描述符表,即全局描述符表、局部描述符表及中断描述符表。 29.80386的分段部件是如何将逻辑地址变为线性地址的? 答:分段部件根据段选择符从全局描述符表或局部描述符表中取出对应的段描述符。把段描述符32位段基地址与逻辑地址中的32位偏移量相加就形成了线性地址。 30.80386中如何把线性地址变为物理地址? 答:分段部件形成的32位线性地址中高10位作为寻址页目录表的偏移量,与控制寄存器CR3中页目录表基地址共同形成一个32位的地址指向页表中的一个页项,即为一个页面描述符。该页面项中高20位作为页面基地址,线性地址的低12位为偏移量,相加后形成指向某一存储单元的32位物理地址。若禁止分页功能,线性地址就是物理地址。 31.80386对中断如何分类? 答:80386把中断分为外部中断和内部中断两大类,外部中断经NMI和INTR引线输入请求信号。内部中断也叫内部异常中断,分为陷阱中断、内部故障异常中断、异常终止中断。 32.80386在保护方式下中断描述符表与8086的中断向量表有什么不同? 答:8086工作在实地址方式,向量表是在存储器的0段中最低1024字节内存中。80386在保护方式下要通过中断描述符表中的描述符访问虚拟空间的中断向量,中断描述符表的位置不是固定的,要由IDTR寄存器实现在虚拟空间的定位。 33.简述80386在保护方式下的中断处理过程。 答:80386响应中断后,接收由中断源提供的类型码并将其乘8,与IDTR寄存器中基地址相加,指出中断描述符的位置,读出中断描述符,依其中的段选择符及条件决定从两个描述符表LDT或GDT中的一个得到段描述符,形成中断服务程序入口所在存储器单元的线性地址。 第3 8086指令系统及寻址方式

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值