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
    评论
微型计算机原理及应用基本学习要求 注:以下基本要求按内容排列,而不是按章节排列 一、 微型计算机基础与概念 1、计算机中信息的表示方式?为何要用二进制表示方式? 2、掌握二进制数、八进制数、十进制数、十六进制数的概念(数码符号、进位、展开式); 3、掌握二进制、十进制、十六进制数间的相互转换,要熟练掌握将8位二进制数转换为相应的十进制数,能熟练的将0~255范围内的十进制数转换为二进制数,能将十六进制数转换成二进制形式,能将二进制转换成十六进制表示形式; 4、机器数与真值的概念,熟练掌握真值与机器数之间的相互转换; 5、带符号数的原码、反码和补码表示,熟练掌握原码和补码之间的相互转换(已知一个数的原码求它的补码,已知一个数的补码求出它的原码); 6、已知一个数的补码,会求它的真值,掌握补码的加减法运算,掌握机器负数的求法; 7、能简述微型计算机系统硬件的组成(微处理器存储器、输入及输入设备、输出接口及输出设备、总线); 8、CPU在内部结构上由哪几部分组成(算术逻辑运算单元ALU、控制器、寄存器),简要说明各部分的作用? 9、地址总线、数据总线、控制总线的作用?它们各自是双向还是单向? 二、 80x86微处理器 1、8086处理器物理地址的生成:段基地址左移4位+段内偏移地址。会计算类似条件下的物理地址:(1)段寄存器CS=1200H,指令指针寄存器IP=2000H,此时,指令的物理地址为多少?(2)一个存放在8086计算机系统内存中的数据,它以DS作为段基址寄存器且设(DS)=1000H,段内偏移地址为2300H,会计算该数据的物理地址(同样是:段基地址左移4位+段内偏移地址),指向这一物理地址的DS值和段内偏移地址值是唯一的吗(不是唯一的)? 2、掌握物理地址的生成方法(8086只有实地址模式,物理地址=段寄存器的内容左移4位+偏移地址);注意向段寄存器传送数据的方法(CS位代码段基地址寄存器,不能做目的地址,立即数不能直接传送给段基地址寄存器),注意代码段寄存器CS不能作为目的寄存器; 3、掌握8086的寄存器及其使用方法,注意AX、BX、CX、DX可以作为8位寄存器使用; 4、8086的标志寄存器有哪些状态标志位?各个标志位在什么情况下置位?注意数据传送指令不影响标志寄存器(除了向标志寄存器传送指令);掌握标志寄存器中各个控制标志位的作用?如何设置这些控制位?注意标志寄存器的传送指令、压栈与弹出指令,修改标志寄存器的方法; 5、能描述计算机中IO端口的编制方式有几种(独立编址和统一编址2种),每种编址方式的特点?8086采用IO独立编址方式,注意X86中IO接口的寻址方式,X86的IO操作指令,IN和OUT指令的端口地址、IN/OUT指令只能是端口与累加寄存器AX(或AL)进行传送; 6、系统的复位后内部寄存器的状态(除CS=0FFFFH外,其他寄存器=0000H),8086系统复位后,第一条执行的指令的地址(0FFFF0H); 7、8086的中断系统,向量中断的概念,中断向量表和结构,中断向量表和中断向量的存放位置,对一个中断类型号为n的中断,会计算它的中断向量的存放地址; 8、什么叫中断类型号?什么是中断向量?中断向量放在那里?对应于中断类型号为20H的中断其中断向量存放在哪里?如果20H的中断处理子程序从3000H:1000H开始,则中断向量应怎样存放(00080H开始存放:00H,10H,00H,30H)? 9、8086存储空间最大为多少?怎样用16位寄存器实现对20位地址的寻址?

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

斯择微韵

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

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

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

打赏作者

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

抵扣说明:

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

余额充值