【微机及接口技术】- 第二章 8086 微处理器

【微机及接口技术】- 第二章 8086 微处理器

1.8086的基本执行环境
2.8086的引脚信号,尤其是和接口有关的信号
3.8086的基本时序

单选、名词解释、填空、简答

第一节、8086 的内部结构

一、 8086 微处理器内部结构

在这里插入图片描述
CPU 内部,从中间的虚线部分分成两部分
左边执行单元 EU, 右边总线接口单元 BIU ,按功能分为两部分。

BIU
1 个20位加法器、4 个段寄存器,一个指令指针寄存器,指令队列、 总线控制逻辑,
作用:通过外部总线从接口或寄存器取指令。

EU
8 个通用寄存器, 1 ALU 算数逻辑运算单元,1 标志寄存器 1 EU控制系统
作用:从指令队列中取数据,去指令之后,对指令进行分析 译码 再 执行

1. 8086组成:

算数逻辑单元 ALU、累加器、专用和通用寄存器
寄存器、指令译码器、定时和控制电路

2. 8086 组成(按功能):

总线接口单元(BIU) 、执行单元(EU)。

3. 总线接口单元 (BIU)
  1. 构成:4个段寄存器、一个指令寄存器、一个与EU通信的内部暂存器、先入先出队列、总线控制逻辑、一个用于计算实际物理地址的20位加法器Σ
  2. 功能:负责与存储器及I/O接口传送消息
4. 执行单元(EU)
  1. 构成:8个通用寄存器、1个标志寄存器、算术逻辑单元ALU、EU 控制电路。
  2. 功能:EU 从指令队列中取出指令代码,将其译码,发出相应的控制信号
5. 总线接口单元与执行单元的配合

1)相互独立
2)并行工作
在这里插入图片描述
EU 从指令队列取出指令执行
总线接口单元取新的指令填充到指令队列

并行工作提高了 CPU 的效率

二、8088和8086内部结构上的区别

  1. 相同处
    • 1)均由BIU和EU组成,两部件并行工作
    • 2)内部数据总线都是16 位
  2. 区别
    • 1)8086指令队列由6字节,而8088只有4字节
    • 2)8086指令队列空出2字节则BIU执行一次取指令,而8088则是空出1字节便执行一次取指令
    • 3)8086的外部数据总线是16位,而8088只有8位。

第二节、 8086的基本执行环境

一、8086的内部寄存器

1.计数

8086内部共有 14 个 16 位的寄存器

2.分类
名称数量
通用寄存器8个
段寄存器4个
指令寄存器1个
标志寄存器1个
3.通用寄存器

包括数据寄存器、地址指针寄存器和变址寄存器

1)数据寄存器 AX、BX 、CX、DX

存放参与运算的数据或运算结果。16位寄存器。高8位、低8位作为独立8位寄存器,AH、AL、BH、BL、CH、CL、DH、DL。

4个数据寄存器的各自习惯用法:

AX,累加器,字乘法、字除法、字I/O;AL,字节乘法、字节除法、字节I/O等。
BX,基址寄存器,查表转换和间接寻址时存放基址
CX,计数寄存器,传操作和循环中的计数器
DX,数据寄存器,寄存器间接寻址存放I/O端口号,大于8位的I/O端口地址必须存放在 DX寄存器中

2)地址寄存器 SP 和 BP

栈指针寄存器 SP:
确定栈顶在内存中的位置;
栈的实际位置由SS、SP共同确定

基址指针寄存器 BP:
存放当前栈段的一个数据区的基地址。

3)变址寄存器 SI 和 DI

源变址寄存器 SI。
目的变址寄存器 DI。
变址寻址方式中存放变址地址。

4)段寄存器 CS、SS、DS、ES
  • 段:不同信息存放在称为 “段” 的不同的内存区域
  • 常见逻辑段:代码段、数据段、堆栈段
  • CS:代码寄存器,存放当前代码段的基址, BIU取指令从当前代码段获取。

指令从当前代码段获取
SS:堆栈段寄存器,对堆栈的操作均是指当前堆栈段。访问堆栈需要配合SP栈指针寄存器
DS:数据段寄存器,程序执行时访问当前数据段内容
ES:附加段寄存器,用于串操作。

5)指令指针寄存器 IP

1)存放预取指令在当前代码段中的偏移地址
2)偏移地址,即有效地址(EA),要访问地存储单元到段首地址的地址差
3)IP 自动加1
4)IP 不能被读/写

6)标志寄存器 FLAGS

16 位寄存器,只用到了 9 位。
6 个状态标志,3 个控制标志
在这里插入图片描述
状态标志位:记录算术和逻辑运算结果的一些特征

  • 1)CF:进位标志位
    最高位发生进位或借位时,CF = 1 ;否则 CF = 0。
    最高位指字节数据的 D7,字数据的 D15。
  • 2)PF:奇偶标志位
    运算结果最低字节中有偶数个1,PF = 1;否则 PF = 0。
  • 3)AF:辅助进位位
    D3 向 D4 进位或借位时,AF = 1;否则 AF = 0。 主要用于 BCD 码计算
  • 4)ZF:零标志位
    运算结果为零,ZF = 1;否则 ZF = 0。
  • 5)SF:符号标志位
    有符号数运算结果最高为 1, SF = 1;否则 SF = 0。
    运算结果最高位为 1 代表为负数,0 为正数
  • 6)OF:溢出标志位
    有符号数的运算结果超出其有效范围,OF = 1;否则 OF = 0
    8 位有符号数 -128 ~ 127
    16 位有符号数 -32768 ~ 32767

3 个控制标志位 对其后的操作产生控制作用

  • 1)TF:跟踪标志位
    TF = 1,CPU 单步执行,方便调试。
  • 2)IF:中断允许标志位
    IF = 1,CPU 响应可屏蔽中断; IF = 0,不响应;
    对不可屏蔽中断和内部中断无影响。
  • 3)DF:方向标志位
    DF = 1,数据串操作按地址递减方式进行;DF = 0 ,递增。

二、8086 的储存器管理

1. 存储器分段

内存单元:即存储器中1个字节的存储区域,以字节为单位。
内存容量:8086 共 20 条地址线,2^20 = 1 M
内存单元都有物理地址
8086 的寄存器 16 位,寻址范围 2^16 = 64 KB

寻址范围小于内容容量,怎么寻址呢?采用分段的方式

内存分段:
1 MB 分为若干段;
段最大为 64 KB;
起始物理地址为 16 倍数,即低 4 位为 0, 高 16 位为段基址;
段基址 + 段内存偏移地址可寻址 1 M 空间。

2. 逻辑地址与物理地址

逻辑地址
分段后的段基址和偏移地址;表示形式为 “段基址:偏移地址”
段基址和偏移地址都是 16 位的。
物理地址
内存单元实际的 20 位地址。
物理地址 = 段基址 x 10H + 偏移地址

BIU的内部有一个20位的地址加法器实现的就是 逻辑地址与物理地址换算
在这里插入图片描述
16 位地址 x 10H 就成为一个 20 位的地址

【例题】已知某内存单元处于数据段中,DS 的值位 6417H,偏移地址为 0100H,则该单元的物理地址是___。

6417H x 10H = 64170H + 0100H = 64270H

3. 多字节数据的存放

小端存储法:对于多字节数据,低字节放在低地址,高字节放在高地址。
多字节数据的地址:指最低字节的地址。

【例题】在 3000 H : 2DA0 H 地址存放了一个 32 位的双字数据,值为: 12345678H,则该数中34H所在的内存的单元的物理地址是多少?

30000H + 2DA0H = 32DA0H

在这里插入图片描述

【答案】:32DA2H

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

在这里插入图片描述
压栈操作/出栈操作,使用 SS SP 和 BP 配合
DS 和 BX 基址寄存器 SI 变址寄存器,DI 使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值