青岛理工大学微型计算机系统,青岛理工大学 微机原理复习知识点

本文详细介绍了微机系统的基本结构,包括CPU的冯诺依曼架构、微处理器、存储器(如RAM、ROM)、I/O接口、总线系统以及寻址方式。重点讲解了8086/8088CPU的特性,如16位结构、存储器组织、寻址方式和指令系统。此外,还涵盖了中断系统、可编程中断控制器8259A和计数器/定时器8253/8254的应用。内容深入浅出,适合计算机硬件和系统结构的学习者参考。
摘要由CSDN通过智能技术生成

微机原理知识点姜亮良

第一章绪论

第一节微型计算机发展概况

1、1946年第一台电子计算机ENIAC在美国研制成功

2、计算机大发展经历了从电子管计算机、晶体管计算机、集成电路计算机、大规模集成电路计算机几代

3、1974年,在美国第一台微型计算机Altair诞生了,从而开创了微型计算机的新时代。

4、摩尔定律:集成电路内芯片的晶体管数目,每隔18个月--24个月,其集成度翻一番

第二节微型计算机系统

1、冯诺依曼型计算机包括:运算器、控制器、存储器、输入设备、输出设备

2、基本工作原理:存储器存储程序控制

3、blog_678daca70100rwb0.html微型计算机包括 微处理器 功能:①从存储器中取指令,指令译码②简单的算术逻辑运算

③在处理器和存储器或I/O之间传送数据④程序流向控制

存储器 分为:随机存储器RAM和只读存储器ROM功能:存放程序和数据 到匹配

图1.3输入/输出接口电路 功能:将外部设备与CPU相连接,使之在信息的格式、电平、速度等方面得

系统总线 分为:地址总线(单向)、数据总线(双向)、控制总线(双向)

功能:在CPU与存储器、I/O间传送地址、数据、控制信息的公共通道

4、微型计算机系统包括:微型计算机、输入输出设备、系统软件 部总线

5、微处理器包括:算术逻辑部件ALU、累加器和寄存器组、指令指针寄存器、段寄存器、时序和控制逻辑部件、内

6、blog_678daca70100rwb0.htmlblog_678daca70100rwb0.html存储器 内部存储器 RAM DRAM、SRAM断电后内容丢失

ROM PROM、EPROM、EEPROM断电后内容不丢失

图1.5外部存储器

7、总线包括:内部总线、元件级总线、系统总线、外部总线 元件级总线包括:地址总线、数据总线、控制总线

第三节计算机数据格式

1、二进制——后缀B八进制——后缀Q或O十进制——后缀D或省略 十六进制——后缀H

2、其它数制转换成十进制课本15页 例1.1 1.2 1.3

3、十进制转换成其它进制课本16页 例1.4 1.5

整数部分:除以基数直到商为零 取余 逆排 小数部分:乘以基数直到小数部分为零 取整 顺排

4、原码

blog_678daca70100rwb0.html反码 正数的反码与原码相同

负数的反码:原码的符号位不变,数字位取反

blog_678daca70100rwb0.html补码 正数的补码与原码相同

负数的补码:原码的符号位不变,数字位取反,最低位加1

blog_678daca70100rwb0.html反码 正数的真值与原码的真值相同

负数的真值:将反码连同符号位求反,求得值前加一负号

blog_678daca70100rwb0.html补码 正数的真值与原码的真值相同

负数的真值:将补码连同符号位求反加1,求得值前加一负号

5、最高位表示符号位:1表示负数0表示正数

6、正数的符号扩展应在前面补0;负数的符号扩展应在前面补1

7、BCD码:将十进制数的每一位以二进制数编码方式表示

8、blog_678daca70100rwb0.htmlBCD码 压缩BCD码 以每字节2个数字的形式存储(4位表示一个数字)

非压缩BCD码 以每字节1个数字的形式存储(8位表示一个数字)

第二章8086系统结构

1、16位微处理器基本结构特点:

①引脚功能复用②单总线、累加器结构③可控三态电路④总线分时复用

2、Intel8086 CPU是16位的 双列直插式 有16根数据线20根地址线 直接寻址空间blog_678daca70100rwb0.html即1MB

第一节 8086 CPU结构

1、8位机串行执行16位机并行执行

blog_678daca70100rwb0.html2、8086CPU总线接口部件BIU功能:地址形成、取指令、指令排队、读写操作数、总线控制

指令执行部件EU功能:指令译码、执行指令

当指令队列有2个或2个以上的字节空余时,BIU自动将指令取到指令队列中

3、过程:①取指令②译码③计算有效地址④取操作数⑤执行⑥存储运算结果

4、寄存器结构

(1)寄存器的存取速度比存储器快得多,寄存器可以用来存放运算过程中所需要的操作数地址、操作数和中间结果

(2)寄存器包括:通用寄存器、指针和变址寄存器、段寄存器、指令指针和标志位寄存器

(3)blog_678daca70100rwb0.htmlblog_678daca70100rwb0.html通用寄存器 EU中有4个16位通用寄存器:AX累加器8个8位寄存器:AL AH

BX基址寄存器 只能存放8位数据BL BH

存放16位数据或地址CX计数寄存器 不能存放地址CL CH

DX数据寄存器DL DH

(4)指针和变址寄存器:BP基址指针寄存器BP和SP与SS连用SSblog_678daca70100rwb0.html16+BP(SP)

SP堆栈指针寄存器

SI源变址寄存器SI和DI与DS连用DSblog_678daca70100rwb0.html16+SI(DI)

DI目的变址寄存器

(5)段寄存器:CS代码段寄存器blog_678daca70100rwb0.htmlIP 存放可执行的指令代码

DS数据段寄存器blog_678daca70100rwb0.htmlSI、BX存放操作的数据

SS堆栈段寄存器blog_678daca70100rwb0.htmlSP、BP开辟为程序执行中所要用的堆栈区

ES附加段寄存器blog_678daca70100rwb0.htmlDI 存放操作的数据

(6)指令指针寄存器:IP用来存放将要执行的下一条指令在现行代码段中的偏移地址

8086程序不能直接访问IP,但可以通过某些指令修改IP的内容

(7)blog_678daca70100rwb0.html标志寄存器:Flags用来存放运算结果的特征 状态标志:CF、PF、AF、ZF、SF、OF

控制标志:TF、IF、DF

CF:进位标志位 最高位有进位或借位CF=1

PF:奇偶校验标志位 低8位中有偶数个1时PF=1有奇数个1时PF=0

AF:辅助进位标志位 低4位向高4位有进位或借位时AF=1

ZF:全零标志位 结果为0,ZF=1否则ZF=0

SF:符号标志位 结果最高位为1 SF=1否则SF=0

IF:中断标志位IF=1时允许CPU响应可屏蔽中断;IF=0时,即使外部设备有中断请求,CPU也不响应

第二节 8086CPU的引脚及其功能

1、8086/8088CPU在最小模式中引脚定义

blog_678daca70100rwb0.htmlblog_678daca70100rwb0.html:16条地址/数据总线 三态双向 分时复用 在总线周期的blog_678daca70100rwb0.html状态传送地址,blog_678daca70100rwb0.htmlblog_678daca70100rwb0.html状态传送数据

blog_678daca70100rwb0.html/blog_678daca70100rwb0.htmlblog_678daca70100rwb0.html/blog_678daca70100rwb0.html:地址/状态线 三态 输出 分时复用 在总线周期的blog_678daca70100rwb0.html状态作地址线blog_678daca70100rwb0.htmlblog_678daca70100rwb0.htmlblog_678daca70100rwb0.htmlblog_678daca70100rwb0.html

一起构成20位物理地址,blog_678daca70100rwb0.htmlblog_678daca70100rwb0.html状态作状态线用

BHE/S7:高8位数据总线允许/状态信号 三态 输出BHE低电平有效

blog_678daca70100rwb0.html状态BHE=0高8位数据有效 (BHE=1,高8位数据无效)

RD:读选通信号 三态 输出 低电平有效 允许CPU读存储器或I/O端口

WR:写选通信号 三态 输出 低电平有效 允许CPU写存储器或I/O端口

M/IO:存储器或I/O端口控制信号 三态 输出M/IO信号为高电平,表示CPU正在访问存储器

M/IO信号为低电平,表示CPU正在访问I/O端口

ALE:地址锁存允许信号 输出 高电平有效 用作地址锁存器8282/8283的锁存控制信号

blog_678daca70100rwb0.html状态ALE有效,表示地址/数据总线上传送的是地址信息ALE信号不能浮空 高电平—地址 低电平—数据

RESET:复位信号 输入 高电平有效 CPU接到复位信号后,停止现行操作,并初始化段寄存器DS、SS、ES、标志寄存器Flags、指令指针IP和指令队列,将它们全置为00H,而使CS=FFFFH。RESET信号至少保持4个时钟周期以上的高电平。CPU执行重启过程,8086/8088将从地址FFFF0H开始执行指令

INTR:可屏蔽中断请求信号 输入 电平触发(或边沿触发) 高电平有效 CPU在每条指令周期的最后一个时钟周期检测此信号,一旦检测到此信号有效,且中断允许标志位IF=1,CPU在当前指令执行完后,转入中断响应周期。

STI指令使中断允许标志位IF置1,用CLI指令使IF置0

INTA:中断响应信号 输出 低电平有效 在中断响应总线周期,8086/8088CPU连续发出两个INTA负脉冲,第一个负脉冲通知外设接口已响应它的中断请求,第二个负脉冲信号通知外设将中断类型号输出到数据总线

NMI:不可屏蔽中断请求信号 输入 边沿触发 正跳变有效 此中断请求不受中断允许标志位IF的影响,也不能用软件进行屏蔽 自动引起类型2中断

2、8088与8086CPU的不同之处:

(1)8088指令队列长度是4个字节,只要出现一个空闲字节,BIU就会自动访问存储器

8086要在指令队列中至少出现2个空闲字节时,才预取后续指令

(2)

(3)

(4)

(5)

第三节 8086存储器组织

一、存储器地址的分段

1、在存储器中是以字节为单位存储信息的,每个存储单元有唯一的地址来确定

①每段容量不超过64KB②段和段之间可以是连续的,也可以是分开的或重叠的 ③允许各个逻辑段在整个存储空间中浮动,段起始地址必须能被16整除才行 ④存储单元的实际地址都是由段地址和段内偏移地址两部分组成

2、物理地址的形成

逻辑地址:由段基址和偏移地址组成,都是无符号的16位二进制数,程序设计时采用逻辑地址

blog_678daca70100rwb0.html物理地址=段基址blog_678daca70100rwb0.html16+偏移地址

二、8086存储器的分体结构

1、8086系统中,1MB的存储空间分成两个存储体:偶地址存储体和奇地址存储体 各为512KB

2、一个字在存储器中按相邻两个字节存放,存入时以低位字节在低地址,高位字节在高地址的次序存放

3、一个字可以从偶地址开始存放,也可以从奇地址开始存放,但是8086CPU访问存储器时,都是以字为单位进行的,并从偶地址开始

4、当CPU读/写一个字时,如果字单元地址从偶地址开始,那么只需要访问一次存储器

如果字单元地址从奇地址开始,那么CPU需要访问两次存储器

编程时注意从存储器偶地址开始存放字数据

三、堆栈的概念

1、堆栈:在存储器中开辟一个区域,用来存放需要暂时保存的数据

2、段基址由堆栈寄存器SS指定,栈顶由堆栈指针SP指定

SP指向的可以是当前栈顶单元,也可以是栈顶上的一个“空”单元,一般采用SP指向当前栈顶单元

堆栈的地址增长方式一般是向上增长,栈底设在存储器的高地址区,堆栈地址由高向低增长

3、堆栈的工作方式是“先进后出”,用入栈指令PUSH和出栈指令POP可将数据压入堆栈或从堆栈中弹出数据

栈顶指针SP的变化由CPU自动管理,堆栈以字为单位进行操作

当执行PUSH指令时,CPU自动修改指针SP-2blog_678daca70100rwb0.htmlSP,使SP指向新栈顶,然后将低位数据压入(SP)单元,高位数据压入(SP+1)单元

当执行POP指令时,CPU先将当前栈顶SP(低位数据)和SP+1(高位数据)中的内容弹出,然后再自动修改指针,使SP+2blog_678daca70100rwb0.htmlSP,SP指向新栈顶

注意:(1)先进入的内容后弹出 (2)PUSH和POP的指令要成对

四、8086系统配置

1、在最小模式系统中,除了8086CPU、存储器及I/O接口芯片外,还要加入

1片8284A作为时钟发生器

3片8282/8283或74LS373作为地址锁存器

2片8286/8287或74LS245作为双向数据总线收发器

2、8286CPU的操作是在时钟脉冲CLK的统一控制下进行的

3、指令周期:执行一条指令所需要的时间 包含几个总线周期

4、总线周期:BIU完成一次访问存储器或I/O端口操作所需要的时间

5、时钟周期:CPU的时钟频率的倒数,也称T状态

6、每个总线周期至少包含4个T状态,在总线周期的blog_678daca70100rwb0.html状态传送地址,blog_678daca70100rwb0.htmlblog_678daca70100rwb0.html状态传送数据

7、复位信号RESET至少维持4个时钟周期的高电平

第三章 8086的寻址方式和指令系统

blog_678daca70100rwb0.html第一节 8086的寻址方式

1、计算机的指令通常包含操作码和操作数两部分 前者指出操作的性质 后者指出操作的对象

2、指令有单操作数、双操作数、无操作数之分

双操作数指令,要用逗号将两个操作数分开,逗号右边的操作数是源操作数,左边的为目的操作数

操作数可以包含在寄存器、存储器或I/O端口地址中,也可以是立即数

操作数在寄存器中的指令执行速度最快,因为他们可以在CPU内部立即执行

立即数寻址指令可直接从指令队列中取数,所以它们的执行速度也较快

操作数在存储器中的指令执行速度较慢,因为它要通过总线与CPU之间交换数据

3、七种寻址方式

(1)立即寻址方式:操作数是立即数 用来给寄存器赋初值

例:MOV AL,26H①立即数可以送到寄存器中,也可以送到一个存储单元中或两个连续的存储单元中去

MOV CX,2A50H②在所有指令中立即数只能作源操作数,不能作目的操作数

③以A—F打头的数字出现在指令中,前面一定要加一个“0”,以免与其它符号混淆

(2)寄存器寻址方式:操作数包含在寄存器中 寄存器之间传送数据

例:MOV DX,AX源操作数的长度必须与目的操作数一致,否则会出错

MOV CL,AH

(3)直接寻址方式:操作数放在存储器中 实现对存储单元的读/写操作

例:MOV AX,[2000H]①把操作数的偏移地址称为有效地址EA

MOV AX,ES:[500H]②当采用直接寻址指令时,如果指令中没有用前缀指明操作数存放在哪一段,则

“:”称为修改属性运算符 默认为使用的段寄存器为数据段寄存器DS 16blog_678daca70100rwb0.htmlDS+EA

③指令中有效地址必须加一个方括号,以便与立即数相区别

④如果要对代码段、堆栈段或附加段寄存器所指出的存储区进行直接寻址,应在

指令中指定段超越前缀 ⑤符号地址:课本60页

(4)寄存器间接寻址方式:操作数放在存储器中,寄存器中的值不是操作数本身,而是操作数的有效地址

例:MOV BX,[SI]①寄存器名称外面必须加方括号,以与寄存器寻址方式相区别

②指令中使用的寄存器有基址寄存器BX、BP及变址寄存器SI、DI

③BX、SI、DI默认操作数放在数据段DS;BP默认操作数放在堆栈段SS

④指令中可以指定段超越前缀来从默认段以外的段中取数据

(5)寄存器相对寻址方式:操作数放在存储器中

例:MOV BX,COUNT[SI]①有效地址是一个基址或变址寄存器的内容与指令中指定的8位或16位位移量之和

MOV BX,[COUNT+SI]②BX、SI、DIblog_678daca70100rwb0.htmlDS BPblog_678daca70100rwb0.htmlSS ③允许使用段超越前缀

(6)基址变址寻址方式:操作数放在存储器中

例:MOV AX,[BX][SI]①有效地址是一个基址寄存器(BX或BP)和一个变址寄存器(SI或DI)的内容

之和,两个寄存器均由指令指定

MOV AX,[BX+SI]②寄存器SI和DI不能同时出现在[ ]中,BX和BP也不能同时出现在[ ]中

③BXblog_678daca70100rwb0.htmlDS 16blog_678daca70100rwb0.htmlDS+BX+SI 16blog_678daca70100rwb0.htmlDS+BX+DI BPblog_678daca70100rwb0.htmlSS 16blog_678daca70100rwb0.htmlSS+BP+SI 16blog_678daca70100rwb0.htmlSS+BP+DI

(7)相对基址变址寻址方式:操作数放在存储器中

例:MOV AX,MASK[BX][SI]①有效地址是一个基址寄存器和一个变址寄存器的内容再加上指令中指定的8位

或16位位移量之和 ②BXblog_678daca70100rwb0.htmlDS BPblog_678daca70100rwb0.htmlSS

4、I/O端口寻址:8086有直接端口和间接端口两种寻址方式

直接端口寻址:端口地址由指令直接提供,它是一个8位立即数00—FFHblog_678daca70100rwb0.html=256个端口 (IN AL,63H)

blog_678daca70100rwb0.html间接端口寻址:端口号由寄存器DX提供0000—FFFFHblog_678daca70100rwb0.html=64K (MOV DX,213H IN AL,DX)

目的操作数可以用除立即寻址方式以外的所有寻址方式指定

第三节 8086的指令系统

1、8086的指令系统包括:数据传送指令、算术运算指令、逻辑运算和移位指令、字符串处理指令、控制转移指令、处理器控制指令

2、MOV传送指令:MOV目的,源 将源操作数传送到目的操作数

blog_678daca70100rwb0.html①IP寄存器不能用作源操作数或目的操作数

②目的操作数也不允许用立即数和CS寄存器

③除了源操作数为立即数的情况外,两个操作数中必有一个是寄存器,但不能都是段寄存器

④MOV指令不能在两个存储单元之间直接传送数据,也不能在两个段寄存器之间直接传送数据

blog_678daca70100rwb0.htmlblog_678daca70100rwb0.htmlblog_678daca70100rwb0.htmlblog_678daca70100rwb0.htmlblog_678daca70100rwb0.htmlblog_678daca70100rwb0.htmlblog_678daca70100rwb0.htmlblog_678daca70100rwb0.htmlblog_678daca70100rwb0.htmlblog_678daca70100rwb0.htmlblog_678daca70100rwb0.htmlblog_678daca70100rwb0.htmlblog_678daca70100rwb0.htmlblog_678daca70100rwb0.htmlblog_678daca70100rwb0.htmlblog_678daca70100rwb0.html课本72页程序段

blog_678daca70100rwb0.html

MOV DX,OFFSET ARRAY OFFSET为属性操作符,表示应把跟在后面的符号地址的值(而不是内容)作为操作数

3、PUSH进栈指令:PUSH源 将源操作数推入堆栈

源操作数可以是16位通用寄存器、段寄存器或存储器中的数据字,但不能是立即数

4、POP出栈指令:POP目的 把当前SP所指向的栈顶部的一个字送到指定的目的操作数中

目的操作数可以是16位通用寄存器、段寄存器或存储单元,但CS不能作目的操作数

5、IN输入指令:课本76页 例3.32

6、OUT输出指令:课本76页 例3.34

7、中断指令:

①中断:计算机在执行正常的程序的过程中,由于某些事件发生,需要暂时中止当前程序的运行,转到中断服务程序去为临时发生的事件服务,中断服务程序执行完毕后,又返回正常程序继续运行

②中断源:引起中断的原因 蔽

blog_678daca70100rwb0.htmlblog_678daca70100rwb0.html③中断 外部中断 不可屏蔽中断 NMI引入 采用边沿触发,上升沿之后维持两个时钟周期的高电平有效 不能用软件屏

可屏蔽中断 INTR引入IF置1,允许响应中断IF置0,不予响应 采用电平触发,高电平

有效,INTR的高电平必须维持到CPU响应中断才结束,可以通过软件设置来屏蔽

内部中断 INT n n为中断类型号

④响应中断的过程:A、将断点和标志寄存器的值入栈保护

B、找到中断服务程序的入口地址

C、执行中断服务程序

D、执行中断返回指令IRET,从堆栈中恢复中断前CPU的状态和断点

⑤中断向量:中断服务程序的入口地址

8086可处理256种中断,每类中断有一个入口地址,需用4个字节存储CS和IP,高2字节存放中断服务程序入口地址的段地址CS,低2字节存放相应于该地址段的偏移量IP。256类中断的入口地址要占用1K字节,存储这些地址的连续空间称为中断向量表。将中断指令中给的类型号乘以4,才能得到规定类型的中断向量。

类型0:除法错中断类型1:单步中断类型2:不可屏蔽中断类型3:断点中断类型4:溢出中断

⑥由外部设备引起的中断请求要得到响应的两个条件:①外设中断请求是否被屏蔽

②CPU是否允许响应中断

⑦内部中断(软件中断)有三种情况引起:A、由中断指令INT引起的中断

B、由CPU的某些运算错误引起的中断 除法错中断 溢出中断

C、由调试程序debug设置的中断 单步中断 断点中断

8、IRET和RET的区别

第五章存储器

一、blog_678daca70100rwb0.html存储器概述

1、blog_678daca70100rwb0.htmlblog_678daca70100rwb0.html存储器 外部存储器 软盘

硬盘

磁带

闪存盘

光盘

blog_678daca70100rwb0.html内部存储器 RAM SRAM速度非常快,只要有电源存在,内容就不会丢失,集成度低、功耗较大

DRAM 高密度但存取速度慢,集成度高,成本较低 内容在一定时间后会自动消失

blog_678daca70100rwb0.htmlROM PROM 将芯片内二极管烧断而存储其内容 一次性写入

EPROM 可由紫外光照擦除其内容,以便重新写入程序

EEPROM 可由加电擦除其内容,芯片可反复使用

Flash Memory 可由加电擦除其部分内容,芯片可反复使用

高速缓冲存储器 CPU的高速缓存是用SRAM组成

2、计算机的内存容量是多少,均指的是RAM存储器容量

二、随机存取存储器RAM

1、静态RAM的构成及功能

blog_678daca70100rwb0.html静态RAM地址译码器 完成存储单元的选择,通常有线性译码和复合译码两种方式,一般采用复合译码

存储矩阵 一个基本存储单元存放一位二进制信息,一块存储器芯片中的基本存储单元电路按字结构或

控制逻辑 位结构的方式排列成矩阵

三态数据缓冲器

2、静态RAM的例子图5.4 5.5

3、动态RAM的构成:刷新和地址两次打入是DRAM芯片的主要特点

4、SRAM、DRAM不同点

三、只读存储器ROM

1、blog_678daca70100rwb0.htmlROM分为 掩膜型ROM

可编程只读存储器PROM

可擦除可编程只读存储器EPROM

电可擦除可编程只读存储器EEPROM

闪存Flash Memory

2、EPROM例子:Intel2764图5.14 5.16

3、EPROM有4种工作方式:读方式、编程方式、检验方式、备用方式

四、CPU与存储器的连接

1、连接时要考虑的问题:①CPU总线的负载能力 ②CPU的时序和存储器存取速度之间的配合

③存储器的地址分配和片选 ④控制信号的连接

2、存储器的地址选择:

(1)将低位地址线连到所有存储器芯片,实现片内寻址,将高位地址线通过译码器或线性组合后输出作为芯片的片选信号,实现片间寻址

(2)存储器地址选择的三种方法:线性选择方式、全译码选择方式、部分译码选择方式

(3)线性选择方式:

①无论ROM或RAM芯片,芯片引脚都包括地址线、数据线、读写控制线和片选CS线

只有片选信号CS有效时,才能对芯片进行操作

②图5.19

③线性选择方式简单,节省译码电路,但地址分配重叠,且地址空间不连续,不便于内存扩充

(4)全译码选择方式:对全部地址总线进行译码

①图5.20

②采用全译码方法选择地址,译码电路比较复杂,但所得地址是唯一连续的,并且便于内存扩充

(5)部分译码选择方式:将高位地址线中的几位经过译码后作为片选控制

①图5.21

例5.3

②部分译码方式的可寻址空间比线性选择范围大,比全译码选择方式的地址空间小,部分译码方式的译码器比较简单,但地址扩展受到一定的限制,并且出现地址重叠区

3、8086CPU数据线有16位,用blog_678daca70100rwb0.html和BHE信号分别来选择两个存储体,blog_678daca70100rwb0.html=0选中偶地址存储体,它的数据线连到数据总线低8位blog_678daca70100rwb0.htmlblog_678daca70100rwb0.html;BHE=0选中奇地址存储体,它的数据总线连到数据总线高8位blog_678daca70100rwb0.htmlblog_678daca70100rwb0.html;若读写一个字,blog_678daca70100rwb0.html和BHE均为0

第六章I/O接口和总线

第一节I/O接口

1、计算机和外设之间的信息交换的问题:①速度不匹配 ②信号电平不匹配 ③信号格式不匹配 ④时序不匹配

2、接口电路应具有的基本功能:①设置数据缓冲以解决两者速度差异所带来的不协调问题

②设置信号电平转换电路

③设置信息转换逻辑以满足对各自格式的要求

④设置时序控制电路来同步CPU和外设的工作

⑤提供地址译码电路

3、最常用的输入输出接口芯片有缓冲器和锁存器

4、缓冲器具有缓冲作用和提高总线驱动能力

5、锁存器具有暂存数据的能力,能在数据传输过程中将数据锁住,然后在伺候的任何时刻,在输出控制信号的作用下将数据传送出去

6、CPU和外设通信时,传送的信息主要包括数据信息、状态信息和控制信息

7、寄存器和它们的控制逻辑统称为I/O端口

8、blog_678daca70100rwb0.html端口 数据端口:数据缓冲的作用

blog_678daca70100rwb0.htmlblog_678daca70100rwb0.html状态端口:准备就绪位

忙碌位

错误位

命令端口(控制端口):存放CPU向接口发出的各种命令和控制字,以便控制接口或设备的动作

9、blog_678daca70100rwb0.htmlI/O端口的编址方式: 存储器映象寻址方式 优点:微处理器的指令集中不必包含I/O操作指令,简化了指令系统

的设计;能用类型多、功能强的访问存储器指令,对I/O设备进行方便、灵活的操作

缺点:I/O端口占用了存储单元的地址空间

I/O指令寻址方式 优点:将输入输出指令和访问存储器的指令明显区分开,使程序清晰,

可读性好;I/O指令长度短,执行速度快;I/O端口不占用内存空间;I/O地址译码电路较简单

缺点:CPU指令系统中必须有专门的IN和OUT指令,这些指令的

功能没有访问存储器指令强;CPU还需提供能够区分访问内存和访问I/O的硬件引脚信号

10、8086/8088系统,习惯上都采用I/O寻址方式

11、blog_678daca70100rwb0.htmlblog_678daca70100rwb0.htmlCPU与外设间的数据传送方式:程序控制方式 无条件传送方式(同步传送方式)程序可以不必检测外设状态

有条件传送方式(查询式传送方式)开始传送前,必须先确认

中断方式 外设已处于准备传送数据的状态,才能进行传送 效率低

DMA方式 由硬件实现

程序控制方式:由软件实现 CPU和外设之间的数据传送是在程序控制下完成的

中断方式:由软件实现 采用中断方式后,CPU平时可以执行主程序,只有当输入设备将数据准备好了,或输出端口的数据缓冲器已空时,才向CPU发中断请求 大大提高CPU利用率

第七章微型计算机中断系统

第二节可屏蔽中断处理过程

1、可屏蔽中断处理过程:①中断请求 ②中断响应 ③保护现场 ④转入执行中断服务子程序 ⑤恢复现场 ⑥中断返回

2、CPU响应可屏蔽中断的条件:①外设提出中断请求 ②本中断位未被屏蔽 ③本中断优先级最高 ④CPU允许中断

3、外设发出中断请求的时间是随机的,而CPU在每条指令的最后一个机器周期的最后一个T状态去采样中断请求输入线INTR

4、CPU在响应外部中断,并转入相应中断服务子程序的过程中,自动依次做以下工作:

①从数据总线上读取中断类型号,将其存入内部暂存器

②将标志寄存器flags的值入栈 子程序

③将flags中的中断允许标志IF和单步标志TF清0,以屏蔽外部其它中断请求,及避免CPU以单步方式执行中断处理

④保护断点,将当前指令下面一条指令的段地址CS和指令指针IP的值入栈,使中断处理完毕后,能正确返回主程序

⑤根据中断类型号到中断向量表中寻找中断向量,转入相应中断服务子程序

⑥中断处理程序结束以后,从堆栈中一次弹出IP、CS和flags,然后返回主程序断点处,继续执行原来的程序

5、对不可屏蔽中断请求,不必判断IF是否为1,也不是由外设接口给出中断类型号,从NMI引脚引入的中断请求规定为类型号2,在运行中断子程序过程中,若NMI引脚上有不可屏蔽中断请求进入,CPU仍能响应

6、软件中断由程序设定,没有随机性,不受中断允许标志位IF的影响,中断类型号为指令INT n中“n”决定

7、中断向量表(中断服务程序入口地址表)

①每个类型的中断占4个字节,高2个字节存放中断入口地址的段地址,低2个字节存放段内偏移地址

②中断类型号n*4即可得到相应中断向量的地址,取4n和4n+1单元的内容装入指令指针寄存器IP,取4n+2和4n+3单元中的内容装入代码段寄存器CS

③为中断类型号n设置中断向量的两种方法:A利用指令来设置B利用DOS功能调用来设置

④例7.5

8、中断服务子程序:

中断服务子程序的功能各有不同,但所有的中断服务子程序都有相同的结构形式:

①程序开始必须保护中断时的现场,可以通过一系列PUSH指令将CPU各寄存器的值入栈保护

②若允许中断嵌套,则用STI指令来设置开中断,使中断允许标志IF=1

③执行中断处理程序

④用CLI指令来设置关中断,使中断允许标志IF=0,禁止其它中断请求进入

⑤给中断命令寄存器送中断结束命令EOI,使当前正在处理的中断请求标志位被清除,否则同级中断或低级中断的请求仍会被屏蔽掉

⑥恢复中断时的现场,通过一系列POP指令将CPU各寄存器的值恢复

⑦用中断返回指令IRET返回主程序,此时堆栈中保护的断点值和标志值分别装入IP、CS和flags

第三节中断优先级和中断嵌套

中断优先级:IBM PC机中规定优先级从高到低的次序为:内中断、不可屏蔽中断、可屏蔽中断、单步中断

第四节可编程中断控制器8259A

1、8259A可编程中断控制器的功能:①具有8级优先级控制,通过级联可以扩展到64级优先级控制

②每一级中断可由程序单独屏蔽或允许

③可提供中断类型号传送给CPU

④可以通过编程选择多种不同工作方式

2、8259A为28个引脚的双列直插式芯片 图7.11

3、图7.9各部分功能

第八章可编程计数器/定时器8253/8254及其应用

1、实现定时功能的方法:软件定时

可编程的硬件定时

不可编程硬件定时

2、8253内部具有3个独立的16位计数器通道,都可以按二进制或十进制格式进行计数,最高计数频率达到2MHz

3、8254与8253的不同之处:①8253的最大输入时钟频率为2MHz,而8254的最大输入时钟频率可高达5MHz,

8254—2则为10MHz

②8254有读回功能,可以同时锁存1—3个计数器的计数值及状态值,供CPU读取,

而8253每次只能锁存和读取一个通道的计数器,且不能读取状态值

第一节 8253工作原理

第二节 8253/8254应用举例

第九章可编程外围接口芯片8255A及其应用

1、8255A是一种通用的可编程并行I/O接口芯片

2、blog_678daca70100rwb0.html图9.1 9.2

blog_678daca70100rwb0.html8255A 数据端口A、B、C端口A包含一个8位的数据输出锁存器/缓冲器 一个8位的数据输入锁存器

端口B包含一个8位的数据输入/输出锁存器/缓冲器 一个8位的数据输入缓冲器

端口C包含一个8位的数据输出锁存器/缓冲器 一个8位的数据输入缓冲器

blog_678daca70100rwb0.htmlA组和B组控制逻辑 端口A和端口C的上半部分(blog_678daca70100rwb0.htmlblog_678daca70100rwb0.html)由A组控制逻辑管理

端口B和端口C的下半部分(blog_678daca70100rwb0.htmlblog_678daca70100rwb0.html)由B组控制逻辑管理

数据总线缓冲器 双向三态的8位缓冲器

blog_678daca70100rwb0.html读写控制逻辑 RESET复位信号 高电平有效

CS 片选信号 低电平有效

RD 读信号 低电平有效

WR 写信号 低电平有效

blog_678daca70100rwb0.html端口选择信号blog_678daca70100rwb0.html=00 端口Ablog_678daca70100rwb0.html=01 端口B

blog_678daca70100rwb0.html=10 端口Cblog_678daca70100rwb0.html=11 控制字寄存器端口

blog_678daca70100rwb0.html3、8255A的控制字 方式选择控制字 用于定义各端口的工作方式blog_678daca70100rwb0.html位总是1

置位复位控制字 用于对端口C的任一位进行置位或复位操作blog_678daca70100rwb0.html位总是0

①方式选择控制字图9.3

②置位复位控制字图9.4

4、8255A的应用举例:图9.13程序

第十一章模数和数模转换

blog_678daca70100rwb0.html模数转换 功能

原理

blog_678daca70100rwb0.html数模转换 功能

原理

图11.5 11.16表11.4

由于时间和精力有限,不足之处在所难免,有些地方只列提纲,请大家自己补上!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值