80x86 微处理器

目录

一、8086 CPU的内部结构

(一)、指令执行单元(EU)

1、算术逻辑运算单元ALU

2、标志寄存器Flags

3.寄存器组

(二)总线接口单元BIU

1.4个16位的段地址寄存器组

2、16位的指令指针寄存器IP

3、20位的物理地址加法器

4、指令缓冲队列

二、8086存储器组织

(一)存储器地址的分段

(二)存储器物理地址的形成

(三)8086存储器的分奇偶体结构

(四)8086存储器的堆栈



 

一、8086 CPU的内部结构

8086微处理器片内片外都是16为的数据总线20位的地址总线直接寻址空间可达2^20即1 MB。其采用了取指令执行指令并行工作的结构设计。

由图可知:8086CPU内部结构由指令的执行单元(EU)和总线接口单元(BIU)这两部分组成。

(一)、指令执行单元(EU)

指令执行单元EU主要完成指令的译码和指令的执行两部分工作。其中有三部分组成

算术逻辑运算单元ALU;

标志寄存器PSW;

寄存器组。

1、算术逻辑运算单元ALU

主要完成8位或16位二进制数据的算术逻辑运算功能,运算的数据可来自内部的寄存器,也可来自存储单元或指令代码中包含的数据。

2、标志寄存器Flags

16位的标志寄存器是用来存储数据运算处理后的结果特征标志信息和CPU运行的状态控制信息。

OF

DF

IF

TF

SF

ZF

AF

PF

CF

溢出标志位

发现标志位

中断允许标志位

单步标志位

符号标志位

零标志位

半进位标志位

奇偶标志位

进位标志位

表1 Flags各位标志含义

3.寄存器组

寄存器组包含4个16位的通用寄存器和4个16位的专用寄存器。

(1) 4个通用寄存器

四个通用寄存器

高八位

低八位

AX

累加器

AH

AL

BX

基址寄存器

BH

BL

CX

计数器

CH

CL

DX

数据寄存器

DH

DL

一般用作数据暂存

(2)4个专用寄存器

4个专用寄存器

SP

堆栈指针寄存器

BP

基址指针寄存器

SI

源变址寄存器

DI

目的变址寄存器

SP和SP可以与堆栈段寄存器SS联合使用,用于设置或访问堆栈段。

在字符串运算中SI与数据寄存器DS配合,指向源串的首地址,DI与附加段寄存器ES配合,指向目的串的首地址。

(二)总线接口单元BIU

总线接口单元BIU是8086CPU与外部(存储器和I/O端口)数据传输的接口,它提供了16位的双向数据总线和20位的地址总线以及所有的控制信号线。

主要功能有:地址的形成、外部取指令、指令排队、数据的读/写操作控制和其他功能的总线控制。

总线接口单元BIU有5部分组成:

a:4个16位的段地址寄存器组

b:16位的指令指针寄存器IP

c:20位的物理地址加法器

d:6字节的指令缓冲队列

e:总线输入/输出控制电路

1.4个16位的段地址寄存器组

用来提供访问外部存储器时的16位段基址。

4个16位的段地址寄存器

CS

代码段寄存器

DS

数据段寄存器

SS

堆栈段寄存器

ES

辅助数据段寄存器

CS——在取指令阶段提供16位的段地址。

DS——在执行指令时,如果有访问片外存储器是数据时提供16的段地址。

SS——在方位堆栈时,提供16位的段地址

ES——在CPU做片外存储器的数据访问时,提供16位的段地址,只在串操作或特别指定的数据访问指令中使用。

2、16位的指令指针寄存器IP

用作存放下一条待执行的指令代码所在存储单元的16偏移地址,和CS一起构成程序指针。

3、20位的物理地址加法器

将16位的段地址和16位偏移地址转换成20位的存储器单元物理地址。

4、指令缓冲队列

用以存放BIU已经读进CPU但是还未来得及执行的指令代码。

5、总线输入/输出控制电路

实现CPU和片外存储器或I/O端口数据传输的时序逻辑控制。

二、8086存储器组织

物理存储器:处理器在它的总线上寻址的存储器称为物理存储器。

物理地址:物理存储器按字节序列排列,每个字节赋予一个唯一的地址,称为物理地址。

(一)存储器地址的分段

8086微处理器有20位的地址总线,内部有16位的寄存器,不能直接给出20位的存储单位地址,必须有2个16位的寄存器组合才能给出20位存储器单位地址。故将1MB的存储空间分成若干个逻辑段,每个逻辑段容量小于等于64KB,1MB的存储空间可分成16个逻辑段,允许在整个存储空间浮动。如图所示:

图2 8086存储器连续分段图

下图3 为8086存储器重叠分段图,只要有段地址和段内偏移地址就可以问问这个物理地址所对应的存储空间。

图3 8086存储器重叠分段图

(二)存储器物理地址的形成

物理地址:8086 CPU访问存储单元时,有20位的地址加法器给出的实际地址,而且这个地址是唯一的,将此地址称为物理地址。

逻辑地址:将段起始地址(段基址)和段内偏移合起来称为逻辑地址,也称为编程地址。

偏移地址:逻辑地址在程序中使用,即段基址:偏移地址。

物理地址的计算:

物理地址是有逻辑地址在地址加法器中变换运算得到,故其计算方法为:

物理地址=16位的段基址*16+16位的偏移地址

(三)8086存储器的分奇偶体结构

8086 CPU将存储器分成奇地址和偶地址管理,称为奇偶分体结构。

8086 CPU 将1MB的存储空间分成两个存储体:奇地址存储体和偶地址存储体,各为512KB。

其中奇地址单元对应高8位数据线和偶地址单元对应低8位数据线。

512K*8位奇地址存储512K*8位偶地址存储

注:为了提高程序的运行速度,在编程时,注意存放字数据最好从偶地址开始存放,这种存放方式也称为“字对准”存放。

(四)8086存储器的堆栈

堆栈是指在存储器中开辟的一片数据存储区,用于暂存数据和在过程调用或处理中断是暂存断点信息。

堆栈的特点:先进后出

图4 堆栈示意图

 

8086 CPU通过对SS和SP的设置来开辟堆栈段。SS提供段基址,SP提供栈底偏移地址。


  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

斯择微韵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值