微机原理.docx
《微机原理.docx》由会员分享,可在线阅读,更多相关《微机原理.docx(14页珍藏版)》请在冰豆网上搜索。
![微机原理.docx](https://file1.bdocx.com/fileroot1/2023-2/23/17759c30-c21f-4619-9a32-47e56ae15af1/17759c30-c21f-4619-9a32-47e56ae15af11.gif)
微机原理
复习资料
2011年12月微机原理
第二章
微处理器的典型结构
运算器、控制器,寄存器阵列。
8086微处理器由哪几部分组成?
各部分的功能是什么?
按功能可分为两部分:
总线接口单元BIU(BusInterfaceUnit)和执行单元EU(ExecutionUnit)。
总线接口单元BIU是8086CPU在存储器和I/O设备之间的接口部件,负责对全部引脚的操作,即8086对存储器和I/O设备的所有操作都是由BIU完成的。
所有对外部总线的操作都必须有正确的地址和适当的控制信号,BIU中的各部件主要是围绕这个目标设计的。
它提供了16位双向数据总线、20位地址总线和若干条控制总线。
其具体任务是:
负责从内存单元中预取指令,并将它们送到指令队列缓冲器暂存。
CPU执行指令时,总线接口单元要配合执行单元,从指定的内存单元或I/O端口中取出数据传送给执行单元,或者把执行单元的处理结果传送到指定的内存单元或I/O端口中。
执行单元EU中包含1个16位的运算器ALU、8个16位的寄存器、1个16位标志寄存器FR、1个运算暂存器和执行单元的控制电路。
这个单元进行所有指令的解释和执行,同时管理上述有关的寄存器。
EU对指令的执行是从取指令操作码开始的,它从总线接口单元的指令队列缓冲器中每次取一个字节。
如果指令队列缓冲器中是空的,那么EU就要等待BIU通过外部总线从存储器中取得指令并送到EU,通过译码电路分析,发出相应控制命令,控制ALU数据总线中数据的流向。
简述8086CPU的寄存器组织。
(1)通用寄存器:
通用寄存器又称数据寄存器,既可作为16位数据寄存器使用,也可作为两个8位数据寄存器使用。
当用作16位时,称为AX、BX、CX、DX。
当用作8位时,AH、BH、CH、DH存放高字节,AL、BL、CL、DL存放低字节,并且可独立寻址。
这样,4个16位寄存器就可当作8个8位寄存器来使用。
(2)段寄存器:
段寄存器共有4个CS、DS、SS、ES。
代码段寄存器CS表示当前使用的指令代码可以从该段寄存器指定的存储器段中取得,相应的偏移值则由IP提供;堆栈段寄存器SS指定当前堆栈的起始地址;数据段寄存器DS指示当前程序使用的数据所存放段的起始地址;附加段寄存器ES则指出当前程序使用附加段地址的起始位置,该段一般用来存放原始数据或运算结果。
(3)指针和变址寄存器:
堆栈指针SP用以指出在堆栈段中当前栈顶的地址。
入栈(PUSH)和出栈(POP)指令由SP给出栈顶的偏移地址。
基址指针BP指出要处理的数据在堆栈段中的基地址,故称为基址指针寄存器。
变址寄存器SI和DI用来存放当前数据段中某个单元的偏移量。
(4)指令指针与标志寄存器:
指令指针IP的功能跟Z80CPU中的程序计数器PC的功能类似。
正常运行时,IP中存放的是BIU要取的下一条指令的偏移地址。
它具有自动加1功能,每当执行一次取指令操作时,它将自动加1,使它指向要取的下一内存单元,每取一个字节后IP内容加1,而取一个字后IP内容则加2。
某些指令可使IP值改变,某些指令还可使IP值压入堆栈或从堆栈中弹出。
标志寄存器FLAGS是16位的寄存器,8086共使用了9个有效位,标志寄存器格式如图2.5所示。
其中的6位是状态标志位,3位为控制标志位。
状态标志位是当一些指令执行后,表征所产生数据的一些特征。
而控制标志位则可以由程序写入,以达到控制处理机状态或程序执行方式的表征。
试述8086CPU标志寄存器各位的含义与作用。
(1)6个状态标志位的功能分别叙述如下:
CF(CarryFlag)——进位标志位。
当执行一个加法(或减法)运算,使最高位产生进位(或借位)时,CF为1;否则为0。
PF(ParityFlag)——奇偶标志位。
该标志位反映运算结果中1的个数是偶数还是奇数。
当指令执行结果的低8位中含有偶数个1时,PF=1;否则PF=0。
AF(AuxiliarycarryFlag)——辅助进位标志位。
当执行一个加法(或减法)运算,使结果的低4位向高4位有进位(或借位)时,AF=1;否则AF=0。
ZF(ZeroFlag)——零标志位。
若当前的运算结果为零,ZF=1;否则ZF=0。
SF(SignFlag)——符号标志位。
它和运算结果的最高位相同。
OF(OverflowFlag)——溢出标志位。
当补码运算有溢出时,OF=1;否则OF=0。
(2)3个控制标志位用来控制CPU的操作,由指令进行置位和复位。
DF(DirectionFlag)——方向标志位。
它用以指定字符串处理时的方向,当该位置“1”时,字符串以递减顺序处理,即地址以从高到低顺序递减。
反之,则以递增顺序处理。
IF(InterruptenableFlag)——中断允许标志位。
它用来控制8086是否允许接收外部中断请求。
若IF=1,8086能响应外部中断,反之则不响应外部中断。
注意:
IF的状态不影响非屏蔽中断请求(NMI)和CPU内部中断请求。
TF(TrapFlag)——跟踪标志位。
它是为调试程序而设定的陷阱控制位。
当该位置“1”时,8086CPU处于单步状态,此时CPU每执行完一条指令就自动产生一次内部中断。
当该位复位后,CPU恢复正常工作。
8086中,存储器为什么采用分段管理?
8086/8088的地址总线宽度为20位,其最大寻址空间是1 MB。
而其他微处理器则在实模式下只能访问前1MB的存储器地址。
实际上,实模式就是为8086/8088而设计的工作方式,它要解决在16位字长的机器里怎么提供20位地址的问题,而解决的办法是采用存储器地址分段的方法。
程序员在编制程序时要把存储器划分成段,在每个段内地址空间是线性增长的。
每个段的大小可达64 KB,这样段内地址可以用16位表示。
存储器分段的方法虽然给程序设计带来一定的麻烦,但这种方法可以扩大存储空间,而且对于程序的再定位也是很方便的。
什么是逻辑地址?
什么是物理地址?
如何由逻辑地址计算物理地址?
物理地址:
完成存储器单元或I/O端口寻址的实际地址成为物理地址,CPU型号不同其物理地址也不同。
物理地址是指CPU和存储器进行数据交换时实际所使用的地址,而逻辑地址是程序使用的地址。
物理地址由两部分组成:
段基址(段起始地址高16位)和偏移地址。
前者由段寄存器给出,后者是指存储单元所在的位置离段起始地址的偏移距离。
当CPU寻址某个存储单元时,先将段寄存器的内容左移4位,然后加上指令中提供的16位偏移地址而形成20位物理地址。
在取指令时,CPU自动选择代码段寄存器CS,左移4位后,加上指令提供的16位偏移地址,计算出要取指令的物理地址。
堆栈操作时,CPU自动选择堆栈段寄存器SS,将其内容左移4位后,加上指令提供的16位偏移地址,计算出栈顶单元的物理地址。
每当存取操作数时,CPU会自动选择数据段寄存器(或附加段寄存器ES),将段基值左移4位后加上16位偏移地址,得到操作数在内存的物理地址。
在8086中,CPU实际利用哪几条线来访问I/O端口?
最多能访问多少端口?
CPU利用AD15——AD016条地址线作为I/O端口的寻址线,最多可寻址65536(64KB)个端口地址。
第三章
指出下列MOV指令的源操作数的寻址方式:
MOVAX,1234H
MOVAX,BX
MOVAX,[BX]
MOVAX,TABLE;TABLE;TABLE是一个变量名
MOVAX,[1234H]
MOVAX,[BX+1234H]
MOVAX,[BP][SI]
MOVAX,[BX+SI-1234H]
【解】:
MOVAX,1234H立即寻址
MOVAX,BX寄存器寻址
MOVAX,[BX]寄存器间接寻址
MOVAX,TABLE;TABLE是一个变量名直接寻址方式
MOVAX,[1234H]直接寻址方式
MOVAX,[BX+1234H]寄存器相对寻址
MOVAX,[BP][SI]基址变址寻址
MOVAX,[BX+SI-1234H]相对地址变址寻址
第5章
8086:
8086微处理器是Intel公司的第三代微处理器,它的字长是16位的,采用40条引脚的DIP(双列直插)封装。
时钟频率有三种:
5MHZ(8086)、8MHZ(8086-1)和10MHZ(8086-2).
8086的基本时序(重点)
周期:
每条指令的执行由取指令、译码和执行等操作组成,执行一条指令所需要的时间称为周期。
时钟周期:
时钟脉冲的重复周期称为时钟周期。
总线周期:
CPU的每一个信息输入、输出过程需要的时间称为总线周期。
总线:
总线是用来连接各部件的一组通信线,换言这,总线是一种在多于两个模块(设备或系统)间传送信息的公共通路。
微机总线可分为三类:
片总线:
又称芯片总线,或元级部级,是在集成电路芯片内部,用来连接各功能单元的信息通路。
内总线:
又称系统总线,或板级总线、微机总线,是用于微机系统中各插件之间信息传输的通路。
外总线:
又称通信总线,是微机系统之间或微机系统与其他系统之间信息传输的通路。
内总线一般由三部分组成:
数据总线:
一般是三态逻辑控制的若干位数据线宽的双向数据总线,用以实现微处理器,存储器及I/O接口间的数据交换。
地址总线:
用于微处理器输出地址,以确定存储器单元地址及I/O接口部件地址。
一般都是三态逻辑控制的若干位线宽的单向传送地址总线。
控制总线:
用来传送保证计算机同步和协调的定时、控制信号,使微机各部件协调动作,从而保证正确地通过数据总线传送各项信息的操作。
总线完成一次数据传输要经历四个阶段:
1 申请占用总线阶段:
需要使用总线的主控模块向总线仲裁机构提出占有总线控制权的申请。
由总线仲裁机构判别确定,把下一个总线传输周期的总线控制权授给申请者。
2 寻址阶段:
获得总线控制权的主模块,通过地址总线发出本次打算访问的从属模块。
3 传数阶段:
主模块和从属模块进行数据交换。
数据由源模块发出经过数据总线流入目的模块。
4 结束阶段:
主、从模块的有关信息均从总线上撤除,让出总线,以便其他模块能继续使用。
PC、PCI,USB总线的简介
PC总线:
PC总线是PC机和XT机使用的总线标准。
PC总线用于8位数据传送,最大通信率为5MB/S,共有62要引脚。
USB总线:
为通用串行总线,USB接口位于PS/2接口和串并口之间,允许外设在开机状态下热插拔,最多可串接下来127个外设,传输速率可达480Mb/S,P它可以向低压设备提供5伏电源,同时可以减少PC机I/O接口数量。
USB的最高传输率可达12Mbps。
PCI总线:
PCI是由Intel公司1991年推出的一种局部总线,总引脚数120条支持32位,64位。
第6章
存储器分类
按存取速度和用途可把存储器分为两大类,内部存储器和外部存储器。
把具有一定容量,存取速度快的存储器称为内部存储器,简称内存。
把存储容量大而速度较慢的存储器称为外部存储器,简称外存。
从制造工艺的角度来分分为
双极型、CMOS型、HMOS型等;
从应用角度来分可分为
随机读写存储器,简称RAM
只读存储器,简称ROM
半导体存储器的主要技术指标
●容量
存储芯片容量=单元数*数据线位数
●存取速度
连接时应注意的问题
在微型计算机中,CPU对存储器进行读写操作,首先由地址总线给出地址信号,然后发出读写控制信号,最后才能在数据总线上进行数据的读写。
所以,CPU与存储器连接时,地址总线、数据总线和控制总线都要连接。
在连接时应注意以下3个问题。
1.CPU总线的带负载能力
CPU在设计时,一般输出线的带负载能力为1个TTL。
现在存储器为MOS管,直流负载很小,主要是电容负载,故在简单系统中,CPU可直接与存储器相连,而在较大系统中,可加驱动器再与存储器相连。
2.CPU时序与存储器存取速度之间的配合
CPU的取指周期和对存储器读写都有固定的时序,由此决定了对存储器存取速度的要求。
具体地说,CPU对存储器进行读操作时,CPU发出地址和读命令后,存储器必须在限定时间内给出有效数据。
而当CPU对存储器进行写操作时,存储器必须在写脉冲规定的时间内将数据写入指定存储单元,否则就无法保证迅速准确地传送数据。
3.存储器组织、地址分配
在各种微型计算机系统中,字长有8位、16位或32位之分,可是存储器均以字节为基本存储单元,如欲存储一个16位或32位数据,就要放在连续的几个内存单元中,这种存储器称为“字节编址结构”。
80286、80386CPU是把16位或32位数的低字节放在低地址(偶地址)存储单元中。
存储器扩展
要组成一个主存,首先要考虑选片的问题,然后就是如何把芯片连接起来的问题。
根据存储器所要求的容量和选定的存储芯片的容量,可以计算出总的芯片数,即
1.位扩展
位扩展是指只在位数方向扩展(加大字长),而芯片的字数和存储器的字数是一致的。
位扩展的连接方式是将各存储芯片的地址线、片选线和读写线相应地并联起来,而将各芯片的数据线单独列出。
2.字扩展
字扩展指仅在字数方向扩展,而位数不变。
字扩展将芯片的地址线、数据线、读写线并联,由片选信号来区分各个芯片。
3.字和位同时扩展
当构成一个容量较大的存储器时,往往需要在字数方向和位数方向上同时扩展,这将是前两种扩展的组合,实现起来也是很容易的。
(好像还有一点点)
第七章
CPU与外设之间数据传送方式
1.程序控制方式
●无条件传送
无条件传送是一种最简单的输入/输出控制方法,一般用于控制CPU与低速I/O接口之间的信息交换,例如,开关、继电器和速度、温度、压力、流量等变送器(即A/D转换器)。
由于这些信号变化很缓慢,当需要采集这些数据时,外部设备已经把数据准备就绪,无需检查端口的状态,就可以立即采集数据。
数据保持时间相对于CPU的处理时间长得多。
因此,输入的数据就用不着加锁存器而直接用三态缓冲器与系统总线连接。
●有条件传送
有条件传送方式又称为程序查询方式。
这种传送方式在接口电路中,除具有数据缓冲器或数据锁存器外,还应具有外设状态标志位,用来反映外部设备数据的情况。
比如,在输入时,若数据已准备好,则将该标志位置位;输出时,若数据已空(数据已被取走),则将标志位置位。
在接口电路中,状态寄存器也占用端口地址号。
使用有条件传送方式控制数据的输入/输出,通常要按图7.8的流程进行。
即首先读入设备状态标志信息,再根据所读入的状态信息进行判断,若设备未准备就绪,则程序转移去执行某种操作,或循环回去重新执行读入设备状态信息;若设备准备好,则执行完成数据传送的I/O指令。
数据传送结束后,CPU转去执行其他任务,刚才所操纵的设备脱离CPU控制。
2.中断控制方式
有条件传送的缺点除了占用CPU较多的工作时间外,还难以满足实时控制系统对I/O工作的要求。
因为在查询方式中,CPU处于主动地位,而外设接口处于消极被查询的被动地位。
而在一般实时控制系统中,外设要求CPU为它服务是随机的,而且支持系统的外设往往有几个甚至几十个,若采用查询方式工作,很难实现系统中每一个外设都工作在最佳工作状态。
所谓工作在最佳状态,是指一旦某个外设请求CPU为它服务时,CPU应该以最快的速度响应其请求。
这就要求系统中的外设,具有主动申请CPU为其服务的权利。
3.直接存储器存取(DMA)控制方式
采用中断方式,信息的传送是依靠CPU执行中断服务程序来完成的,所以,每进行一次I/O操作,都需要CPU暂停执行当前程序,把控制转移到优先权最高的I/O程序。
在中断服务程序中,需要有保护现场和恢复现场的操作,而且I/O操作都是通过CPU来进行的。
当从存储器输出数据时,首先需要CPU执行传送指令,将存储器中的数据,读入CPU中的通用寄存器AL(对于字节数据)或AX(对于字数据),然后,执行OUT指令,把数据由通用寄存器AL或AX传送到I/O端口;当从I/O端口向存储器存入数据时,过程正相反。
4.I/O处理机方式
8089是专门用来处理输入/输出的协处理器。
它共有52条指令、lMB寻址能力和两个独立的DMA通道。
当8086/8088加上8089组成系统后,8089能代替8086/8088,以通道控制方式管理各种I/O设备。
以通道控制方式管理I/O设备,目前只有在大中型计算机中才普遍使用,因此,8089为微机的输入/输出系统设计带来换代性的变化。
一般情况下,通过接口电路控制I/O外设,必须依靠CPU的支持,对于非DMA方式,从外部设备每读入一个字节或发送给外部设备一个字节,都必须由CPU执行指令来完成。
虽然高速设备可以用DMA传送数据,但仍然需要CPU对DMAC进行初始化,启动DMA操作,以及完成每次DMA操作之后都要检查传送的状态。
DMA控制器的功能
通用的DMA控制器应具有以下功能:
(1)编程设定DMA的传输模式及其所访问内存的地址区域。
(2)屏蔽或接受外部设备的DMA请求(DREQ)。
当有多个设备同时请求时,还要进行优先级排队,首先接受最高级的请求。
(3)向CPU转达DMA请求。
DMA控制器要向CPU发出总线请求信号HOLD(高电平有效),请求CPU放弃总线的控制。
(4)接收CPU的总线响应信号(HLDA)。
接管总线控制权,实现对总线的控制。
(5)向相应外部设备转达DMA允许信号DACK。
于是在DMA控制器的管理下,实现外部设备和存储器之间的数据直接传送。
(6)在传送过程中进行地址修改和字节计数。
在传送完要求的字节数后,向CPU发出DMA结束信号(EOP),撤消总线请求(HRQ),将总线控制权交还给CPU。
第8章
中断的响应过程
1)中断请求
当中断源需要CPU对它进行服务时,就会产生一个中断请求信号。
对外部中断源,这个信号加至CPU的中断请求输入引脚,形成对CPU的中断请求;对内部中断源,则通过CPU内部特定事件的发生或特定指令的执行作为对CPU的中断请求。
2)中断响应
CPU接受中断请求就称为中断响应。
当CPU执行到每条指令的最后一个时钟周期时,就去检测是否有中断请求,如果有中断请求,对内部中断源,CPU会无条件响应,而对外部中断源,只有在满足响应条件时,CPU才会响应其中断请求。
3)断点保护
当CPU响应某个中断时,就会转到相应中断源的服务程序上。
为了使CPU在完成中断服务后能返回原程序继续执行,需要将原程序被中断处的相关信息保存到堆栈中。
对8086/8088CPU,断点处的IP、CS和标志寄存器内容由硬件进行自动保护,其他信息的保护则由中断服务程序来完成。
4)中断源识别
在计算机系统中,往往有多个中断源,当有中断请求时,CPU就需要确定具体的中断源,以便对其进行相应的服务。
在8086/8088中断系统中,由中断源自身提供其编码,供CPU进行识别。
5)中断服务
一般地,每一个中断源都有其相应的服务程序,即中断程序。
当CPU识别中断源后,就会取得其中断程序的入口地址,并转入该中断程序,进行相应的中断服务。
中断服务是整个中断处理的核心。
6)断点恢复
当CPU完成相应的中断服务后,利用中断服务程序,将原来在中断程序中用软件保存的断点信息从堆栈弹出,恢复为中断前的内容。
7)中断返回
在中断程序的最后,通过执行一条中断返回指令,将IP、CS及标志寄存器的内容从堆栈中弹出,使CPU返回到中断前的程序,并从断点处继续执行。
外部中断
外部中断是由外部中断源对CPU产生的中断请求,根据外部中断源是否受8086/8088CPU标志寄存器的中断允许标志位(IF)的影响,将中断分为非屏蔽中断和可屏蔽中断两种。
对应于这两种中断方式,在8086/8088CPU的外围引脚上有两个中断请求输入引脚NMI和INTR,分别用于非屏蔽中断请求和可屏蔽中断请求信号的输入。
内部中断
内部中断是指CPU内部事件及执行软中断指令所产生的中断请求。
中断优先权
优先权的判决
在IBM-PC机中,当多个中断同时向CPU提出中断申请时,利用可编程中断控制器(PIC)来实现中断优先权的判决。
它是80x86系统中普遍采用的方法,也是目前使用最广泛、最方便的方法。
中断优先级的次序
IBM-PC规定的中断优先级的次序是:
内部中断(高)→非屏蔽中断→可屏蔽中断→单步中断(低)
中断向量表
Intel8259A的控制字和编程(重点)
8259的级联
Intel8253的控制字和编程(重点)
Intel8255的控制字和编程(重点)
注意端口地址的分配、控制字如何设置,工作方式。
详见课件。