111微机原理书中内容总结Word下载.docx
《111微机原理书中内容总结Word下载.docx》由会员分享,可在线阅读,更多相关《111微机原理书中内容总结Word下载.docx(26页珍藏版)》请在冰豆网上搜索。
4个专用寄存器(BP、SP、SI、DI)
算术逻辑单元
EU控制器
标志寄存器组成。
(2)EU各部件的作用
1)4个通用寄存器可以作为16位或2个八位寄存器
AX:
16位的累加器许多指令的执行都用到AX
BX:
16位的基数寄存器寄存器间接寻址
CX:
16位的计数寄存器
DX:
16位的数据寄存器I/O指令中用到
2)4个专用寄存器
BP:
16位的基数指针寄存器堆栈段数据区基址的偏移地址
SP:
16位的堆栈指针寄存器栈顶的偏移地址
堆栈:
一组寄存器或一个存储区域,用来存放调用子程序或响应中断时的主程序断点地址,以及暂存其它寄存器的内容。
当信息存入堆栈或从堆栈中取出信息时,都必须严格按照“先进后出”的规则进行。
SI:
16位的源变址寄存器当前数据段的偏移地址串指令
DI:
16位的目的变址寄存器当前数据段的偏移地址串指令
3)算术逻辑部件ALU
功能有两个:
一是进行算术/逻辑运算;
二是按指令的寻址方式计算出所寻址的16位偏移地址。
4)EU控制器:
执行指令的控制电路,实现从队列中取指令、译码、产生控制信号等。
5)标志寄存器:
16位状态标志寄存器(7位未用)存放操作后的状态特征和人为设置的控制标志。
这些标志可分两类:
状态标志,控制标志
4.8086CPU内部流水线管理工作原理
1)当指令队列为空时,这种情况一般发生在程序刚开始执行或刚执行了跳转指令(转移指令、调用指令和返回指令)。
这时EU等待BIU提取指令,BIU会从存储器中把要执行的那个程序段指令装入指令队列中
2)当指令队列不空时,这时EU和BIU独立工作,EU负责从指令队列前部取出指令代码,并进行译码和执行;
BIU负责从存储器中把指令取到指令队列中,直到指令队列满为止。
3)当指令队列已满且EU又无访问请求时,BIU便进入空闲状态。
4)当指令队列出现2个空字节时,BIU又会自动地从存储器中把后面的指令装满指令队列。
5)当EU执行特殊指令时,这有两种情况:
一是EU在执行指令过程中必须进行外部(存储器或I/O端口)访问,这时EU请求BIU去做外部访问,如果BIU正好处于空闲状态,则立即响应EU的请求,如果BIU正在取指过程中,则BIU在完成当前取指令的操作后再去响应EU的请求;
二是EU执行跳转指令,这时,指令队列中已装入的指令字节就不再有用,则指令队列被自动清空。
5.字节分为奇字节和偶字节。
字分为奇字、偶字
对于奇字节、偶字节、奇字、偶字的读/写操作
一个总线周期完成:
奇字节、偶字节和偶字操作均可用一个总线周期完成,
总线周期完成:
奇字操作需二个总线周期,分别用奇字节和偶字节操作来完成。
其过程是通过A0、BHE(8086CPU的两条引脚)信号的配合来实现的
6.8086CPU总线周期的概念?
在计算机中时间的最小单位是时钟周期(一个时钟脉冲的时间长度)。
BIU通过系统总线完成对外界(存储器或I/O端口)的一次访问所需的时间称作一个总线周期。
在8086CPU中,一个最基本的总线周期由4个时钟周期组成。
4个时钟周期分别称为4个状态,即T1状态、T2状态、T3状态和T4状态。
除了上述四个状态外,还有等待状态Tw和空闲状态TI。
7.简述各个时钟周期的作用?
T1:
CPU往多路复用总线上发出20位地址信息,以指出要寻址的存储单元或外设I/O端口的地址
T2:
对读操作,CPU从AD总线上撤消地址信息使总线的低16位成高阻状态,为16位数据输入作准备;
对写操作,CPU输出数据信息。
总线的最高4位用来输出总线周期状态信息
T3:
AD总线的高4位继续提供状态信息,而低16位上输出由CPU提供的数据(写操作)或者CPU从存储器(或端口)读入的数据(读操作)
T4:
总线周期结束
Tw:
这是等待状态。
当外设或存储器速度较慢时,CPU会在T3之后插入1个或多个等待状态Tw,解决外设或存储器不能及时地配合CPU数据传送问题。
具体详见总线的读写操作
TI:
这是空闲状态。
当CPU和内存或I/O接口之间不需传输数据,且指令队列填满时,CPU不需要执行总线周期,系统总线就处于这个空闲状态。
这时,在总线高4位上,CPU仍然保持前一个总线周期的状态信息。
12.一个完整的中断处理系统必须实现以下功能:
中断源识别
中断优先级判断
中断嵌套管理
CPU的中断响应
中断服务
中断返回
14.8086CPU的中断源?
8086CPU有256种中断可分为两大类:
外部中断和内部中断。
(1)外部中断(硬件中断):
分为非屏蔽中断和可屏蔽中断两种。
1)非屏蔽中断:
NMI,有求必应,掉电、紧急停机处理,多个查询
2)可屏蔽中断:
INTR,IF=1响应,与8259配合多个中断源
内部中断(软件中断)
1)单步中断-----------中断类型号是1TF=1产生,调试程序,正常执行0
2)除法出错中断-------中断类型号是0DIV,IDIV执行时,商超出了规定的范围产生
3)断点中断-----------中断类型号是3设置好断点,INT或INT3产生
4)溢出中断-----------中断类型号是4溢出标志OF为1,执行INTO产生
5)指令中断-----------中断类型号是nINTn系统功能调用或自定义的软中断
15.内部中断的特点:
①内部中断的类型号都是固定的,或是在中断指令中给定的。
不需要进入INTA总线周期获取类型号;
②不受中断允许标志位IF的影响;
③用一条指令或由某个标志位启动进入中断处理程序,这样 的中断没有随机性。
16.8086中断系统中断源的优先级
中断源
优先级
除法出错中断
最高
最低
软件中断INTn
溢出中断INTO
非屏蔽中断NMI
可屏蔽中断INTR
单步中断
17.简述8086CPU内部中断和非屏蔽中断的响应及处理过程
(1)中断请求与检测
(2)确定中断向量地址
(3)保护各标志位状态和屏蔽INTR中断和单步中断
(4)保存断点
(5)执行中断服务程序
(6)中断返回
18.可屏蔽中断
(2)判断是否响应
(3)确定中断向量地址
(4)保存断点(保护各标志位状态和屏蔽INTR中断和单步中断)
19.中断向量表
Ø
中断向量----中断服务程序入口地址。
中断向量表-----中断服务程序入口地址表。
中断向量地址-----中断向量在中断向量表中的位置。
中断向量地址与中断类型号之间的关系可表示为:
中断向量地址=中断类型号*4
20.中断程序设计分为主程序设计和中断服务子程序设计两部分。
主程序---用来完成相关的初始化工作,为实现中断做好准备;
中断服务子程序---用来完成相关的中断处理工作。
主程序设计
初始化工作分三部分:
(1)CPU内部的初始化:
设置堆栈指针SS和SP、中断向量、开中断
(2)中断控制器8259A的初始化
(3)通用接口的初始化
中断服务子程序设计
中断服务子程序含有以下七个部分:
1)保护中断时的现场。
2)若允许中断嵌套,则设置开中断。
3)执行中断处理程序。
4)设置关中断,
5)给中断命令寄存器送中断结束命令EOI。
6)恢复中断时的现场。
7)用中断返回指令IRET返回主程序。
21.中断控制器Intel8259A
功能:
1)具有8~64级的中断优先权管理功能;
2)每一级都可以通过编程实现中断屏蔽或开放;
3)在中断响应周期,8259A可以自动提供相应的中断类型号;
4)可以通过编程来选择8259A的各种工作方式及任意设定中断类型号。
22.
23.8259A的工作方式
六种工作方式:
中断请求方式、中断源屏蔽方式、中断嵌套方式、
优先级循环方式、中断结束方式、读8259A状态方式。
24.
25.初始化命令字完成以下功能:
1)设定中断请求信号触发形式,高电平触发或上升沿触发;
2)设定8259A工作方式,单片或级联;
3)设定8259A中断类型号基值,即IR0对应的中断类型号;
4)设定优先级设置方式及中断处理结束时的结束操作方式;
26.8237A的主要特性
(1)一个8237A芯片有四个独立的DMA通道,也可通过级连方式扩充通道数目;
(2)各通道具有独立的允许/禁止DMA请求的控制功能和自动预置功能;
(3)各通道都有DMA请求信号DREQ和响应信号DACK,其有效电平可编程设定;
(4)有两种优先级:
固定优先级和循环优先级;
(5)有四种工作方式:
单字节传送方式、数据块传送方式、请求传送方式和级联方式;
(6)有两种基本时序:
正常时序和压缩时序;
(7)传送数据时具有自动修改地址的功能;
(8)DMA传送过程中具有总线控制权,在传送结束后能将总线控制权归还给CPU;
(9)数据传送结束时能发DMA结束信号,也可由外部发送DMA结束信号中止传送。
27.8237A的工作周期
(1)DMA空闲周期:
8237A处于从属状态
(2)DMA有效周期:
8237A处于主控状态,具有总线控制权控制DMA传送。
28.8237A优先级编码逻辑
1)固定优先级:
通道0的优先级最高,通道3的优先级最低,按顺序排列。
2)循环优先级:
当前优先级最高的通道在结束本次DMA传送后变为优先级最低的通道,其他通道的优先级依次前进一位。
29.8237A的传送方式
①单字节传送方式
每次传输完一个字节(当前地址寄存器+1或-1,当前计数器-1),DMAC释放总线(CPU重新收回)。
8237立即对DREQ进行测试,一旦DREQ有效,8237会向CPU发出HRQ信号,获取总线控制权,再进行数据传输。
②数据块传送方式
8237获得总线控制权后,连续传送多个字节(每传输一个字节,当前字节计数器减1,当前地址寄存器加1或减1),直到所要求的字节数传输完(当前字节计数器减至0),8237在EOP引脚上发出结束信号,然后释放总线。
在块传输过程中,若向8237的EOP引脚上输入低电平,可强行结束传输。
③请求传送方式
④级联传送方式
多片8237级联时,可以构成主从式DMA系统。
级联的方式是把从片的请求线HRQ连至主片的DREQ引脚,主片的DACK联至从片的HLDA引脚
若主片8237的某通道(DREQ)连接从片8237的HRQ,主8237的该通道应设置为级联传输模式,但从8237不设置级联传输模式,而是设置其它三种模式之一。
30.8237A的传送类型
①写传送:
将数据从I/O接口写入内存。
②读传送:
从内存读取数据送到I/O接口。
③校验传送:
虚拟传送,用来校验读/写传送功能,一般用于
检测器件。
31.8237A的工作时序
1SI:
空闲状态。
2S0:
总线请求等待状态,向CPU提出总线请求。
3S1:
改变高8位地址时出现这个状态,用来传送地址有效信号。
4S2:
修改存储器16位地址、向外设发送DACK信号,进入该状态
5S3:
利用读信号,读取内存或IO的值。
6S4:
利用写信号,写内存或IO。
7SW:
存储器和外设速度较慢时,引入该状态
正常时序有S3,压缩时序无S3
32.8237A的清除先/后触发器命令
8237A各通道的地址寄存器和字节计数寄存器都是16位的,而数据线只有8位,一次只能传送一个字节,因此采用连续两字节方式读写这些寄存器。
为确保正确,8237A设置了一个内部先/后触发器用来控制读写16位寄存器的顺序。
当先/后触发器清0时,读写低8位数据
然后自动置1,读写高8位数据,接着再自动清0,如此循环。
每次8237A复位后,先/后触发器被清0。
33.8237A初始化编程的一般步骤
1)输出复位命令,使8237A允许接受DMA请求,先/后触发器清0;
2)选择使用的通道,并写入相应通道当前地址寄存器和基地址寄存器的初始值;
3)输入当前字节计数器和基字节计数寄存器的初始值,确定要传送的字节数;
4)写入方式寄存器,以确定8237A的工作方式和传送类型;
5)写入控制寄存器,以控制8237A的工作;
6)写入屏蔽寄存器;
7)若有软件请求,则写入请求寄存器。
34.输入/输出接口的功能
应具有以下基本功能:
(l)解决CPU与外设之间速度不匹配问题
(2)实现信号电平的转换:
MC1488和MC1489
(3)实现信号格式的转换:
可分成以下三种:
1)模/数与数/模转换
2)开关量转换:
开关转为1和0
3)并行—串行转换
4)实现CPU与外设之间同步工作
一般采用时序控制电路使CPU和外设同步
命令或控制信号、定时信号等工作状态和应答信号
(5)实现CPU对端口的选择
地址译码,同一时刻选择其中某一个端口
35.I/O端口的寻址方法
I/O端口的编址方式有两种:
统一编址方式和独立编址方式。
(1)统一编址方式
优点:
1)简化了指令系统的设计,在微处理器指令集中不必包含I/O操作指令;
2)访问I/O设备的指令类型多、功能强,能用访问存储器指令,对I/O设备进行方便、灵活的操作;
3)I/O地址空间可大可小,能根据实际系统上的外设数目来调整。
缺点:
1I/O端口占用了存储单元的地址空间
2且I/O译码电路变得较复杂
3其次,访问存储器的指令一般要比较长,这样延长了输入输出操作时间。
(2)独立编址方式
1)可读性好,输入输出指令和访问存储器的指令有明显的区别, 使程序清晰;
2)I/O指令长度短,执行的速度快,占用内存空间少;
3)I/O地址译码电路较简单。
CPU指令系统中必须有专门的IN和OUT指令,而且这些指令的功能
没有访问存储器的指令强。
36.CPU与端口之间的数据传送方式有三种:
程序控制传送方式
程序控制传送方式----在程序控制下进行信息传送
分为二种方式:
无条件传送和条件传送。
中断技术传送方式
DMA传送方式
37.DMA控制器的功能
1)能向CPU发出总线请求信号
2)能实行对总线的控制
3)能发送地址信号并对内存储器寻址
4)能修改地址指针
5)能向存储器和外设发出读/写控制信号
6)能判断DMA传送是否结束
7)能发出DMA过程结束信号,使CPU能正常工作
38.DMA传送操作的过程的步骤:
(1)初始化DMAC
(2)外设通过DMAC向CPU发出DMA请求
(3)CPU响应DMA请求
(4)DMAC接管总线的控制权
(5)实现数据传送
(6)DMA结束
39.8255数据端口
在8255A内部包含了三个8位输入/输出数据端口:
端口A、B、C。
三个端口在功能上有不同的特点:
端口A:
一个8位的数据输入锁存器,一个8位的数据输出锁存器/缓冲器,即端口A输入/输出时都可以锁存数据。
端口B:
一个8位的数据输入缓冲器,一个8位的数据输出锁存器/缓冲器,即端口B输入不能锁存,而输出可以锁存。
端口C:
比较特殊,一个8位的数据输入缓冲器,但没有锁存器,一个8位的数据输出锁存/缓冲器。
40.8255端口控制逻辑
端口控制逻辑分为A组和B组,各组管理的端口如下:
A组:
管理端口A及端口C的上半部(PC7~PC4)
B组:
管理端口B及端口C的下半部(PC3~PC0)
41.8255A基本操作
42.8255A有三种基本的工作方式:
1方式0:
基本输入/输出方式
2方式1:
选通输入/输出方式
3方式2:
双向总线I/O方式
43.8255方式1主要功能
1)端口A和端口B都可作为数据输入/输出端口,但必须通过端口C相应位的控制来实现。
2)当端口A和端口B中的一个端口被确定为工作方式1时,与此 对应的端口C中就有3位被固定了,端口C中的这3位专门用来 控制端口A或端口B。
3)若端口A和端口B都工作于方式1,则端口C中有6位固定,剩 余2位可工作于其它方式,用作其它用途。
44.8255方式2的联络信号
1)OBF:
输出缓冲器满,低电平有效。
2)ACK:
外设响应信号,低电平有效。
3)STB:
选通信号,低电平有效。
4)IBF:
输入缓冲器满,高电平有效。
5)INTR:
中断请求信号,高电平有效。
6)INTE1,INTE2:
中断允许信号,高电平有效。
44.可编程串行通信接口芯片8251A,其主要性能如下:
1)可用于同步和异步传送。
2)可实现同步传送(5~8)位/字符;
可选择内部或外部 同步;
可自动插入同步字符。
同步传送波特率为DC~64K。
3)可实现异步传送(5~8)位/字符;
异步通信的波特率
因子可以有三种选择:
1、16或64;
停止位也有三种选择:
1、1.5或2位;
异步传送波特率为:
DC~19.2K。
4)片内含有全双工、双缓冲发送和接收器。
5)出错检测:
具有奇偶、溢出和帧错误等检测电路。
6)兼容性:
全部输入输出与TTL电平兼容;
单一的十5V电
源;
与Intel8080、8085、8086、8088CPU接口兼容。
45.8251数据总线缓冲器
其内部包含三个三态双向8位的缓冲器:
状态字缓冲器:
用来存放8251A内部的工作状态,供CPU查询或测试之用;
接收数据缓冲器:
用来存放接收器已经装配完毕的字符,供CPU读取;
发送数据/命令缓冲器:
存放CPU送入8251A的数据或命令。
CPU通过输入/输出指令可以对这些缓冲器读/写数据、写入命令(控制)字和读出8251A的状态信息。
46.8251编程的流程图
48.8253基本功能
以8253芯片为例来说明其基本功能,大致可概括为以下五点:
1)3个计数器:
每个8253芯片上有3个独立的16位计数通道
2)2~10MHz的计数频率:
每个计数器的计数频率范围为0~2MHz,其改进型8254-2的计数频率范围为0~10MHz。
3)2种数制计数:
每个计数器都可以按照二进制或十进制计数。
4)6种工作方式:
每个计数通道都有6种工作方式,可由程序设置或改变。
5)与TTL兼容:
所有输入/输出引脚都与TTL兼容。
51.8253的6中工作方式门控信号、out及计数是否重复特点?
52.8253各工作方式之间的异同点
(1)各工作方式的共同点
1)当控制字写入计数器时,所有的控制逻辑电路立即复位,
输出端OUT进入初始状态:
高电平或者低电平。
2)初始值写入后,要经过一个时钟上升沿和一个下降沿,
计数执行部件才开始工作。
3)在时钟脉冲CLK的上升沿时,门控信号GATE才被采样。
(2)各工作方式的不同点
1)软件触发启动计数
2)硬件触发启动计数
3)自动装入计数初值
4)门控信号GATE的控制作用
53.GATE信号
56.D/A转换器工作方式
(1)直通工作方式
数字输入端的数据直接进入D/A转换器转换输出,相当于内部没有锁存器
(2)单缓冲方式
输入寄存器或DAC寄存器中的任意一个处于直通状态,而另一个工作与受控锁存状态,输入数据只经过一级缓冲便进行D/A转换,只执行一次写操作。
(3)双缓冲工作方式CPU进行两次写操作
例7-1某中断源的类型号为34,且已知部分中断向量表
如图7-11所示,试求中断服务程序入口的物理地址。
解:
34*4=136
即中断向量地址为:
88H
查中断向量表得中断向量为:
A123H:
B678H
中断服务程序入口的物理地址为:
AC8A8H
例7-2某中断源的类型号为54H,中断服务程序入口的符号地址为INTADD,试编一段程序设置该中断类型号的中断向量。
MOVAX,0
MOVDS,AX
MOVBX,54H*4;
取中断向量地址
MOVAX,OFFSETINTADD;
取中断向量并送入中断向量表
MOV[BX],AX
MOVAX,SEGINTADD
MOVBX+2],AX
例7-3:
试编写利用IBMPC/XT系统中8237A从某接口电路(非软盘或硬盘接口)向内存某区域传送32字节数据的8237A初始化程序。
要求每进行一次DMA请求后即从接口电路向内存传送一字节数据,该内存区域的起始地址为4000H:
0000H,相应的提供高4位地址A19~A16的页面寄存器地址为0083H。
在IBMPC/XT系统中,通道0用来对动态RAM进行刷新;
通道1为用户所保留,用来提供其它传送功能;
通道2用于软盘和内存之间的数据传送;
通道3用作硬盘和内存之间的数据传送。
由题意可知数据的传送方式为单字节写传送,地址加1变化,则方式字可置为45H。
IBMPC/XT系统中8237A始终使用固定优先级,假设DACK低电平有效,DREQ高电平有效,则控制字可置为00H。
8237A提供了16位地址A15~A0,该16位地址与页面寄存器提供的高4位地址A19~A16共同构成系统20位内存地址A19~A0。
由于8237A实际传送的字节数比编程写入的字节数大1,因此编程时要传送的字节数初始值应置为32-1=31。
根据8237A初始化编程的一般步骤,初始化程序如下:
MOVDX,