微机原理第二章8086处理器

一、8086CPU基本结构

EU:执行指令

BIU:(与外界交接)取指,读操作数,写结果

取指和读指是并行的,提高效率。

只有BIU有区别:

重点!!

外部数据总线(外部数据引脚16根)

8086  内部外部       都是16根数据总线

8088  内部16根      外部8根

不同的时间段,引脚呈现不同功能

地址总线都是20位,所以最大能够寻址2^20。

1KB=2^10=1024字节

1MB=2^20=1014576字节

CPU基本组成结构

各个寄存器名称都要记住!!

AX累加器

BX基址寄存器

CX计数器

DX数据寄存器

以上每个16位都可以拆分为两个8位的寄存去

指示器BP/SP

变址寄存器SI(源变址寄存器)+DI(

8086一次性传输16位,有6个字节的指令队列

8088一次性只能传输8位,只有4个字节指令队列

EU(ALU+寄存器组)

功能

①执行指令②向BIU传输结果③管理Reg(寄存器)和PSW(标志寄存器)

组成

所有算数都在ALU中完成

FR(16个里只有9个有效,6个条件标志位,3个

EU工作过程

从BIU中取指令→译码(变成二进制)→变成控制命令→控制数据走向

加法运算操作:指令码从指令队列取来,操作数从内存中取来,运算;ALU总线输到各个部件。

从外设取数:EU向BIU申请访问端口(取数),向ALU数据总线传送数据

BIU(同外部设备的接口部件)

功能:

从内存中取值,把指令放到指令队列的末尾,头部把指令推送给EU,EU从最上方取。

如果EU向BIU申请取操作数,那么BIU指令就停止取了

组成:

IP→PC,指向下一条要取的指令的地址

程序计数器PC

16位逻辑地址→20位的物理地址

指令队列:

流水线操作

第一次:BIU取指令,EU等待;等到下一条,BIU在取指令的同时,EU也在执行上一条传输过来的指令

BIU是没有空闲时间的,一直在取指令。

重要!!

分段存储

8086有20根地址线,但是内部可以表示的地址最多16位。

每个段最大64KB,最小16B

//

CS代码段

DS/ES数据段

SS堆栈段

不能调换使用,只能在固定段

//

逻辑地址:

​​​​​​地址加法:两个逻辑地址→一个20位的物理地址

段地址左移四位补,加上位的偏移地址

形成一个20位的物理地址

320

CS+IP指令地址

SS+SP/BP

DS+SI/DI/BX

例子:

解释:

段基址左移四位

2000H→20000H

加上段内偏移地址20000H+5F62H=25F62H即物理地址

物理地址计算


AXAHAL累加器
BXBHBL基地址寄存器
CX        CHCL计数器
DXDHDL数据寄存器

寄存器

通用寄存器

用途:存放8位或者16位的操作数或者中间结果;AX使用最多

AX作用:

  1. AX

        累加器;算术运算;与外部设备交换数据

  1. BX         存放基地址
  2. CX

        可以自动-1,在循环计数前把数放到CX中;

3.DX

       数据寄存器,与CX配合最多;充当AX的助手,辅助AX。

        也有专门用途,双字长,与AX组合配合使用;DX高16位,AX低16位。

        IO端口寻址,也用DX

MUL    BX            ;AX*BX,操作数16位,相乘后结果最多可以是32位,DX放高16位,AX放低16位


MOV    DX,257        ; 端口地址>256,要先写入DX
IN     AL,DX         ;读取地址,放到AL
MOV DX 20H    ;若200H则必须先写入DX。如果>0FF,只能间接寻址;>256。
                若<256,可以直接MOV DX 20H;

IN  AL DX
指示器和变址寄存器

SP/BP经常在堆栈里面用于指向某一个地址单元;

SP存放栈顶地址(最后一个进来的)永远指向栈顶,CPU自动操作。

BP可以指向堆栈段里任何一个字节单元(偏移地址

SS堆栈段的段基址

SI/DI地址通常可变,比如在循环操作时,对一串内存单元操作,地址往往是变化的。所以偏移地址放在SI/DI便于变化。

SI/DI通常与DS数据段寄存器配合使用,数据段中的物理地址。

SI默认DS(数据段);

DI默认ES(附加段);

例:已知下图。则首地址物理地址32000H

代码:

MOV    SI,2000H
MOV    DI,3000H
MOV    CX,100H
CLD

解释:

数据块的拷贝:

源地址2000H放在SI(想复制的)DS:SI

目的地址放在DI(复制过去就放在这)ES:DI

然后CX放置整个块的长度。

8086向下生长:栈底在高地址;初始地址在高位低地址;

8051向上生长;栈底是低地址,

段寄存器

标志寄存器FR

存放ALU的操作结果,作为一个条件去判断。

最高位产生进位:                              CF=1

奇偶(低8位1的个数偶1奇0):        PF=1     

溢出(双高位法):                           OF=1

符号标志(最高位):                        SF=0

零标志(为0则1):                            ZF=0

辅助进位标志D3向D4进位:                AF=1

  • 转换为二进制

    • 2345H2345H2345H 转换为二进制: 00100011010001010010 0011 0100 01010010001101000101
    • 3219H3219H3219H 转换为二进制: 00110010000110010011 0010 0001 10010011001000011001
  • 补码的计算

    • 取 3219H3219H3219H 的二进制 00110010000110010011 0010 0001 10010011001000011001 的反码(每位取反)得到 11001101111001101100 1101 1110 01101100110111100110。
    • 然后加1得到补码 11001101111001111100 1101 1110 01111100110111100111。
  • 执行加法

    • 将 2345H2345H2345H 的二进制形式与 3219H3219H3219H 的补码相加:
      • 00100011010001010010 0011 0100 01010010001101000101
      • +
      • 11001101111001111100 1101 1110 01111100110111100111
      • =
      • 11110000101011001111 0000 1010 11001111000010101100

二、8086/8088CPU内部结构

        引脚功能

重点!!

引脚33        模式选择

接1:最小模式

接0:最大模式

引脚9-16地址数据复用引脚

8088是AD0-AD7是地址数据复用引脚

8086是AD0-AD15是地址数据复用引脚

引脚28

8088

8086 

引脚25        ALE

ALE下降沿锁存

三个中断重点!!

引脚18        可屏蔽    INTR

INTR=1且IF=1,cpu进入中断响应周期。

若IF=0,即使有INTR=1,cpu对此中断请求信号不予理睬。

可以通过软件方法使得IF=0

一般用于外设

不可以屏蔽的中断请求        NMI

比如断电了,08H和09H松IP

中断应答信号

告知我已经收到了中断信息了,给设备发出应答信号,告诉我已经收到你的中断请求了,不用再发了

CLK

RESET

                至少保持4个时钟周期

                所有寄存器都复位为0000

                只有代码段CS复位为FFFFH

READY        

重点!!

访问外设/内存

8086和8088是反过来的,高低电平对应的功能刚好反过来。

8088访问外设接1;访问内存接0;

接0,写入

再根据决定写入内存/外设

接0,读取

再根据决定读内存/外设

8086与8088区别3个

3.

0有效,同为1则无操作。

系统总线和典型时序

  • 时钟周期

        

  • 总线周期

        一个总线周期由4个时钟周期构成,T1 T2 T3 T4;但是有等待周期,可能就大于四个时钟周期了。

  • 指令周期

        不同指令需要的总线周期不一样。

一个基本总线周期由4个时钟周期(T1,T2,T3,T4)构成

T1:CPU访问端口时送出地址

T2:地址撤销;地址数据复用引脚从地址转换为数据引脚;       

        读信号地址/数据线是高阻;因为要经过译码各种操作,读不到。

        写信号,可以立马送出一个数据,则地址/数据线是数据

T3:数据稳定,在T3和T4交界处采样数据,进入T4状态

T4:结束

8086读存储器

中断相应周期(可屏蔽中断INTR)

当前指令执行完后相应中断

第一个周期:送,应答中断,表示①响应中断,②外设取消INTR信号用

(我响应你的中断了,不用再发了)

第二个周期:再次送,通知外设送中断类型码数据线上,以便CPU取得该中断服务程序入口地址,转入该中断服务

                      4个字节存放一个首地址,中断类型号*4就是中断服务程序的入口地址。内存地址取出来放在CS:IP里面,这个是指向下一条要执行的指令的,就可以进入中断服务程序。

(我要发送给外部设备,你把中断类型码告诉我,你是什么类型的中断,我就找到入口,执行这个中断服务程序)

NMI中断类型码固定为2,中断类型码已知,对于不可屏蔽中断请求来说,只要一个中断响应周期就行。

8086/8088等待状态时序

READY为0时,表示进入等待状态,在T3和T4之间插入一个等待周期Tw,直到READY引脚置1,再继续执行。

总线空闲周期

                CPU不与MEM或I/O之间传送数据时,则不执行总线周期, BIU则不和总线打交道,此时进入总线空闲周期T。

微处理器应用系统

三个小系统

时钟发生器8284:向CPU提供CLK,READY,RESET信号

8位三态输出锁存器8282/8283:由于地址/数据线分时复用,在数据占用总线之前,必须先将地址码锁存,由ALE的下降沿跳变启动锁存。

:允许输出,低电平有效

:(在1时,直接传输,不锁存)选通信号,接到ALE上,下降沿时锁存。DI在变,DO也不变。

并行双向总线驱动器8286/8287:A,B输入输出;T传输方向。

T=1:发送

T=0:接收

总线控制器8288

RESET,READY,CLK连到8088

8086有20根地址总线,最少要有3片8282来锁存

8088只有8根数据总线,8086有16根。但是8286左边8个A接CPU,右边8个B是接外设的。

所以8088要一片,8086要两片。

连接关系(以8088为CPU的单CPU模式)

地址20位,8086数据16位(两片8286)

9.24 8:15 36min

题目

3. (单选题, 2分)8088/8086的存储器组织是将存储器划分为段,可作为段的起始地址的是(  )。

  • A. 185A2H
  • B. 00020H
  • C. 01003H
  • D. 0AB456H

正确答案: B:00020H;

解析:

        段式管理,每个段的起始地址必须是16的倍数

4. (单选题, 2分)8086微处理器可寻址访问的最大I/O空间为(      )。

  • A. 1KB
  • B. 64KB
  • C. 640KB
  • D. 1MB

正确答案: B:64KB;

解析:

        最大I/O是64KB,最大内存1MB

5. (单选题, 2分)8088/8086 CPU 中,指令指针(IP)中存放的是(              )。

  • A. 指令
  • B. 指令地址
  • C. 操作数
  • D. 操作数地址

正确答案: B:指令地址;

解析:

        指针里存放地址;操作数是指令的组成部分

6. (单选题, 2分)如果访问存储器时使用BP寻址,则默认的段寄存器是(             )。

  • A. CS
  • B. ES
  • C. DS
  • D. SS

正确答案: D:SS;

解析:

        CS:IP

        SS:SP/BP

        DS:SI

        ES:DI

7. (单选题, 2分)8086对外部请求响应优先级最高的是(           )。

  • A. READY
  • B. INTR
  • C. HOID
  • D. NMI

正确答案: D

解析:

        优先级顺序

        NMI(最高优先级,不可屏蔽中断)

        HOLD(DMA直接存储器访问)

        INTR(可屏蔽中断请求)

        READY(同步操作)

8. (单选题, 2分)8086/8088CPU经加电复位后,执行第一条指令的地址是(       )。

  • A. FFFFFH
  • B. 03FFFF
  • C. 0FFFFH
  • D. FFFF0H

正确答案: D:FFFF0H;

解析:

9. (单选题, 2分)8086微处理器CLK引脚输入时钟信号是由(  )提供。

  • A. 8284A
  • B. 8288
  • C. 8287
  • D. 8289

正确答案: A:8284A;

解析:

        8284:时钟发生器(CLK,READY,RESET)

        8282/8283:8位三态输出锁存器

        8286/8287:并行双向总线驱动器

        8288:总线控制器

???

程序设计中使用的地址称为逻辑地址,而CPU对存储器单元进行操作时使用的地址称为物理地址

16. (填空题, 2分)当存储器的读出时间大于CPU所需要的时间时,为了保证存储器与CPU的周期配合就要利用__READY___信号,使CPU在___T3___后插入一个Tw状态。

8086系统中,存储器分为奇、偶两个存储体。偶体的数据信号线固定与数据总线的__低8位____相连。

???

设定某数据区为16个字,起始地址为70A0:DDE6,该数据区字数据的首末物理地址分别是______和_______。

正确答案:

(1) 7E7E6H

(2) 7E804H

解析:

        70A0:DDE6

        段基址:偏移地址

        首地址:70A00+DDE6=7E7E6H

        末地址:16个字,一个字2字节,一共32个字节。+31,但是31是十进制,要转换成16进制。所以+1F

19. (填空题, 2分)设堆栈段寄存器SS所存放的数据为2250H,堆栈指示器SP所存放的数据为0140H,如压入堆栈7个字数据,问栈顶地址、SS和SP各为_______、___________、___________。

正确答案:

(1) 2250H:0132H

(2) 2250H

(3) 0132H

7个字,14个字节,E。所以是0132H。所以字先转换成字节,然后字节再转换成16进制,再相加减。

20. (填空题, 2分)8088/8086访问代码段、堆栈段的偏移量分别由___指令指针寄存器IP_____寄存器和__堆栈指针寄存器BP/SP_____寄存器提供。

21. (填空题, 2分)8086/8088在最小方式下有关总线请求的信号引线是__HOLD______和_____HLDA___。

23. (判断题, 4分)8086 CPU的Ready信号是由外部硬件产生的。

  • A. 对
  • B. 错

正确答案: 对

28. (判断题, 4分)8088/8086的数据可以存放在几个不连续的段中。

  • A. 对
  • B. 错

正确答案: 对

微型计算机系统总线由哪三部分组成?它们各自的功能是什么?

正确答案:

地址总线:指出数据的来源或去向

数据总线:提供了模块间数据传输的路径

控制总线:传送各种控制信号以便控制数据、地址总线的操作及使用。

32. (简答题, 4分)什么是最小工作方式?什么是最大工作方式?

最小工作模式特点:在系统中只有8086一个微处理器。所有的总线控制信号直接由8086产生,因此,系统中的总线控制逻辑电路被减到最少。最小模式是单处理器系统

最大工作模式模式:系统中有两个或两个以上的微处理器,即除了主处理器8086(或8088)以外,还有协处理器(8087算术协处理器或8089输入/输出协处理器)。最大模式可构成多处理器系统,系统中所需要的控制信号由总线控制器8288提供。

区别:最大模式是相对最小模式而言的。最大模式用在中等规模的或者大型的8086/8088系统中。在最大模式系统中,总是包含有两个或多个微处理器,其中一个主处理器就是8086或者8088,其他的处理器称为协处理器,它们是协助主处理器工作的。CPU工作模式的选择是由硬件决定的

正确答案:

(1)是指8086对片外的存储器或I/O接口进行了一次访问,读写数据或取指令


(2)基本总线周期4个时钟周期组成,分别记为T1、T2、T3、T4。


(3)地址信号、ALE信号在T1周期内产生

          RD信号在T2周期内产生

          数据信号一般在T3内产生,若T3来不及提供数据,可在某Tw内产生有效数据。

34. (简答题, 5分)什么是地址锁存器?8088/8086系统为什么要用地址锁存器?

正确答案:

地址锁存器:一个暂存器,它根据控制信号的状态,将总线上地址代码暂存起来。


8086/8088数据和地址总线采用分时复用操作方法,即用同一总线既传输数据又传输地址。CPU发出存储器地址,同时发出允许锁存信号ALE给锁存器。

由于地址数据线分时复用,在数据占用总线之前,必须将地址码锁存。

35. (简答题, 5分)8086 CPU中地址加法器的重要性体现在哪里?

正确答案:

地址加法器是8086CPU的总线接口单元中的一个器件,在8086存储器分段组织方式中它是实现存储器寻址的一个关键器件,地址加法器将两个16位寄存器中的逻辑地址移位相加,得到一个20位的实际地址把存储器寻址空间从64K扩大到1M,极大地扩大了微型计算机的程序存储空间,从而大大提高了程序运行效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值