汇编语言与微机接口--8086芯片

目录

1.微处理器:

1.1基础认识:

1.2构成:

2.8086

2.1功能

执行部件EU

总线接口部件BIU

2.2寄存器结构

2.3存储器组织:

物理地址的确定:

存储器的区域:

逻辑地址的来源:


在学习8086芯片之前,我们要对微处理器有一定的了解

1.微处理器:

1.1基础认识:

  • 微处理器

只是一个中央处理器(CPU),由算术逻辑部件(ALU),累加器和通用寄存器组,程序计数器,时序和控制逻辑部件,内部总线等组成。微处理器不能构成独立工作的系统,也不能独立执行程序。

  • 微型计算机

由CPU,存储器,输入/输出接口电路和系统总线组成,具有计算功能,能独立执行程序,但不能显示或输出,仍不能正常工作。

  • 以微型计算机为主体,配上外部输入/输出设备及系统软件就构成了微型计算机系统,这样就可以正常工作了。

2.1构成:

  • 运算部分:

算数逻辑单元(ALU)寄存器

标志寄存器

  • 控制部分

指令寄存器

指令译码器

控制单元PLA

2.8086

2.1功能

EU

----执行部件,负责指令的译码和执行

  • 指令的执行(在ALU中完成)
  • 暂存中间的运算结果(通用寄存器中)
  • 保存运算结果特征(标志寄存器FLAGS中)

标志寄存器FR
有的地方也叫做PSW

汇编语言与微机接口--8086芯片

CF:无符号数进行加减时,最高位产生进位或借位时置1
OF: OF=(最高位运算后进位状态)异或(次高位运算后进位状态);
PF低八位包含的1的个数为偶数,置1
AF:第三位向第四位有进位,置1
ZF:计算结果为0,置1
SF符号位状态
DF:串操作地址步进方向,1是从大到小,0是从小到大
IF:可屏蔽中断开关,置1为打开。进入中断后自动置0
TF:置1则CPU处于单步运行方式

BIU

-----总线接口部件,负责与存储器和I/O端口传送数据

  • BIU使用指令队列电路来实现流水线操作,该队列为先进先出队列(FIFO),有两个指针,允许预取6个字节的指令代码。

预取指令到指令队列,访问内存或者外设中的操作数,响应外部的中断请求和总线请求

执行部件和总线接口部件协同工作,并行的流水线工作

2.2寄存器结构

  • 数据寄存器:

AX(累加器)BX(基址寄存器)CX(计数器)DX(数据寄存器)

  • 段寄存器:

CS(代码段寄存器)SS(堆栈段寄存器)DS(数据段寄存器)ES(附加段寄存器)

  • 地址寄存器/变址寄存器:

SP(堆栈指针寄存器:总是指向栈顶)BP(基址变址寄存器)SI(源变址寄存器)DI(目标变址寄存器)

  • 控制寄存器:

IP(指令指针寄存器)FLAGS(标志寄存器)

2.3存储器组织:

存储器的操作完全基于物理地址,8086有20根地址线,内部总线和内部寄存器均为16位

  • 存储器分段:

存储空间按照需要划分成若干逻辑段,逻辑段开始的地址必须是16的倍数,逻辑段空间最大为64K

每个逻辑段的长度不得大于64KB,64KB是由偏移地址是16位二进制决定的,寻址空间最大为216B=64KB

汇编语言与微机接口--8086芯片

2.4物理地址的确定:

段地址:段首的物理地址为XXXX0H

段内地址:该存储单元相对于段内第一个存储单元的距离

相对地址/偏移地址EA:16位

汇编语言与微机接口--8086芯片

计算:

物理地址=段地址*16(10H)+偏移地址    

逻辑地址=段地址:偏移地址

2.5存储器的区域:

程序区:CS

堆栈区:SS

数据区:DS ES

2.6逻辑地址的来源:

汇编语言与微机接口--8086芯片

2.7引脚:

CLK:时钟信号输入
NMI:上升沿触发,非屏蔽中断输入端
INTR:高电平有效,可屏蔽中断请求输入端
RD’:输出,低电平有效,读取指令
WR’:输出,低电平有效,写入指令
M/IO’:1:存储器操作;0:IO口操作

  • READY:输入,电平有效,

1. 每个总线周期的T3状态对READY信号采样,
2. 如果没有准备好就加入一个TW状态,
3. 在TW末尾继续对READY采样,如果还没准备好就一直加。

  • TEST’:输入,电平有效

1. 每隔5个时钟周期重复检测该信号,
2. 当检测到该信号为低电平时,等待状态结束。

  • RESET:输入,电平有效,复位信号

1. 高电平宽度至少大于4个时钟周期。
2. 当信号有效时,CPU结束当前操作,并对CPU内的标志寄存器, IP, DS, SS, ES及指令队列清零,
3. 而将CS设置为FFFFH, 当复位信号变为低电平时,CPU从FFFF0H处开始执行程序。
BHE’/S7:BHE和A0信号组合使用来选择读取高8位(奇地址)或者低8位(偶地址)
BHE’    A0    操作                                     数据引脚
0      0    从偶地址开始读写一个字(16位)                         AD15~AD0
1      0    从偶地址单元或端口读写一个字节(8位)                      AD7~AD0
0      1    从奇地址单元或端口读写一个字节(8位)                      AD15~AD8
0      1    从奇地址单元开始读写一个字(16位)(在第一个总线周期,将低8位数据送至    AD15~AD8,    AD15~AD8
1      0    在第二个总线周期,将高8位数据送至AD7~AD0。在CPU内部进行调整        AD7~AD0

  • INTA’:输出,低电平有效

当外设向CPU申请可屏蔽中断INTR,CPU如果允许中断,则连续发出两个负脉冲给外设。第一个负脉冲通知外设已受理中断;外设在第二个负脉冲时向数据总线上发送中断类型码。

ALE:输出,高电平有效,地址数据复用线的地址选择
DEN’:输出,低电平有效,地址数据复用线的数据选择
DT/R’:数据收发方向控制端,1:发送;0:接受
HOLD:输入,高电平有效,看下面
HLDA:输出,高电平有效

汇编语言与微机接口--8086芯片

  • 最大最小的区别

最大模式的控制总线信号由专用的总线控制器8288产生,最小模式所有的总线控制信号都是由CPU直接产生

地址锁存器:

利用下降沿将地址锁存

读总线周期:

汇编语言与微机接口--8086芯片

T1:T1状态后期,ALE信号变为低电平,利用ALE将BHE锁存在LS373锁存器中
T2:AD0~AD15为高阻,为输入数据作准备;A19 ~A16变为S3 ~S7;注意DEN’的状态和数据信号不一致
T3: D15~D0到数据总线,CPU获得数据。
T4: 数据消失,控制信号复位,为下一个总线周期做准备
如果在T3状态,READY为低电平,则在T3后插入Tw,控制信号及数据信号不变。

 

写总线周期:

汇编语言与微机接口--8086芯片

T1:地址A0~A19上线,T1状态后期,ALE信号变为低电平,利用ALE将BHE锁存在LS373锁存器中

T2: A19~A16变为S3 ~S7;DEN’有效,打开数据总线;D15 ~D0由CPU送至数据总线
 

2.88086和8088区别:

  • 1:数据总线宽度不同 

8088的外部数据总线宽度是8位,8086为16位。

  • 2:访问存储器和输入输出控制信号含义不同 

8088——IO/M=0表示访问内存; 
8086——IO/M=1表示访问内存。

  • 3:其他部分引线功能的区别 

在8086中SS0引脚改为BHE,以适应16位的数据宽度