前言
微机原理期末复习的一些概念性的基础知识总结。
内容
(1)微处理器、微机与微机系统三者之间有什么异同?
(1)把CPU(运算器和控制器)用大规模集成电路技术做在一个芯片上,即为微处理器。
(2)微处理器加上一定数量的存储器和外部设备(或外部设备接口)构成了微型计算机(也就是微机)。
(3)微型计算机与管理、维护计算机硬件以及支持应用的软件相结合就形成了微型计算机系统。
(2)简述微型计算机系统的硬件组成及各部分作用
(1)运算器(ALU):运算器的核心是算术逻辑单元,是完成各种算术和裸机运算的部件。
(2)控制器(CU):发出各种控制信息,使计算机各部件协调工作的部件。
(3)存储器(M):记忆程序和数据的部件。
(4)输入设备(IN):将程序和数据输入的部件。
(5)输出设备(OUT):将结果数据和其他信息输出的部件。
(3)微机总线的基本概念是什么?微机总线有哪几类?总线结构特点是什么?
(1)概念:所谓总线,就是连接部件和传送信息的公共线。
(2)类型:地址总线,数据总线,控制总线。
(3)特点:结构简单、可靠性高、易于设计生产和维护,更重要的是便于扩展。
(4)计算机的数制有哪些?如何进行数制转换?将十进制数转换为二进制和十六进制:128
(1)数制:二进制,八进制,十进制,十六进制。
(2)数制转换:通过不断除以目标进制,得到余数和商,直到商为0位置。余数从下往上排列,得到目标数值。
(3)
<1>128的二进制:
,<2>128的十六进制:
(5)CPU在内部结构上由哪几部分组成?
CPU内部结构上由运算器、控制器、寄存器阵列和内部总线等各部分构成。
(6)CPU的总线接口部件有哪些功能?CPU的执行部件有哪些功能?
(1)接口部件:负责CPU与存储器、输入输出设备之间的数据传送。
(2)执行部件:负责执行CPU的指令集。
8086/8088微处理器中有哪些寄存器?通用寄存器中哪些可以作为地址指针使用?
8个通用寄存器:AX,BX,CX,DX,SP,BP,SI,DI。
2个指针寄存器:SP,BP。
4个段地址寄存器:DS,ES,SS,CS。
(7)简述8086CPU标志寄存器各位的含义与作用
- CF(Carry Flag):进位标志位,用于指示无符号算术运算是否发生进位或借位。
- PF(Parity Flag):奇偶标志位,用于指示运算结果中的1的个数是奇数还是偶数。
- AF(Auxiliary Carry Flag):辅助进位标志位,用于指示在BCD(二进制编码的十进制)算术运算中低位到高位的进位。
- ZF(Zero Flag):零标志位,用于指示运算结果是否为零。
- SF(Sign Flag):符号标志位,用于指示运算结果的符号,如果结果为负数,则SF被置为1,否则置为0。
- TF(Trap Flag):陷阱标志位,用于调试目的,当设置为1时,CPU在每条指令执行后产生中断。
- IF(Interrupt Flag):中断标志位,用于控制CPU对可屏蔽中断的响应,当设置为1时,允许响应可屏蔽中断。
- DF(Direction Flag):方向标志位,用于控制字符串操作的方向,当设置为1时,串操作是从高地址向低地址进行,反之为0。
- OF(Overflow Flag):溢出标志位,用于指示有符号算术运算是否发生溢出。
(8)8086的各种寻址方式,并写出每种寻址方式的2或3条转送指令。
(1)立即数寻址
MOV AX, 1234h
MOV BX, 2244h
(2)寄存器寻址
MOV AX, BX
MOV BX, AX
(3)寄存器间接寻址
MOV AX, [BX]
MOV BX, [AX]
(4)寄存器相对寻址
MOV AX, [BX+3]
MOV AX, 3[BX]
(5)直接寻址
MOV AX, [1234h]
MOV BX, [1234h]
(6)基址变址寻址
MOV AX, [1234h]
MOV BX, [1234h]
(7)基址变址相对寻址
MOV AX, [BX+SI+4]
MOV BX, [BP+DI+4]
(9)PCI总线特点
(1)突出的高性能,实现33MHZ和66MHZ的同步操作,传输速度可达528Mb/s,支持突发式传送。
(2)良好的软硬件兼容性,支持各种处理器。
(3)支持即插即用、支持多主设备。
(4)提供数据和地址奇偶校验功能,保证数据完整性。
(5)采用最优化芯片和多路复用信号线,成本低。
(10)简述AGP总线与PCI总线的关系
(1)AGP标准与PCI标准完全兼容,一个AGP设备既可以通过AGP规范也可通过PCI规范与内存进行数据交换。
(2)AGP是对PCI的扩充和增强。
(3)AGP不是PCI的升级版本,他的插槽和PCI不兼容。
(11)简述USB总线的特点与应用场合
特点:
(1)具备即插即用特性。
(2)可动态链接和重新配置外设。
(3)允许多台设备同时工作。
(4)可以向USB总线上的设备供电。
(5)通讯协议支持等时数据传输和异步消息传输的混合模式。
(6)支持实时语音、音频、和视频数据传输。
应用场合:
(1)计算机外设
(2)移动设备连接
(3)存储设备
(4)数字相机和摄像机
(5)视频和音频设备
(6)游戏控制器
(7)嵌入式系统
(12)数据信息有哪几类?CPU和输入/输出设备之间传送的信息有哪几类?相应的端口是什么端口?
(1)数字量,模拟量和开关量。
(2)数据信息,状态信息和控制信息。
(3)数据端口,状态端口和控制端口。
(13)数据信息有哪几类?CPU和输入/输出设备之间传送的信息有哪几类?相应的端口是什么端口?
(1)数字信息有数字量、模拟量和开关量三种。
(2)数据信息、状态信息和控制信息。
(3)数据端口、状态端口和控制端口。
(14)什么是IO接口?IO接口的基本功能和作用是什么?
(1)IO是CPU,主存和外围设备之间通过系统总线进行连接的标准化逻辑部件。
(2)IO接口在两个部件之间起“连接器”的作用,以便实现彼此之间的信息传送。
(15)计算机对IO端口编址时通常采用哪两种方法?在8086微机系统中采用哪种方法?
(1)I/O端口和存储器统一编址;I/O端口单独编址。
(2)8086系统采用I/O端口单独编址方式。
(16)8086CPU的IO端口地址范围是什么?在IMB PC中IO端口地址范围是什么?其中用户可用的地址范围有哪些?
(1)0-0xfffff。
(2)0-0xfffff。
(3)0-0xffff。
(17)设一个外设接口的IO端口地址为208H,设计该接口的端口译码器。
(1)推荐视频讲解:https://www.bilibili.com/video/BV1yP411N7A6/?spm_id_from=333.337.search-card.all.click&vd_source=a6289e7ab435b598d918e64d45cd15c0
(2)这种题目记住套路就很简单
<1>首先,我们需要知道外设接口的IO端口地址代表什么,以这里的208H为例,208H=10 0000 1000B,那么表示如果A9和A3为高电平,其他引脚和AEN引脚为低电平那么久选中当前IO。(AEN为低电平时表示是CPU控制进行的I/O访问,所以要选中IO,AEN必须为低电平)
<2>现在我们知道了这11条线的电压应该是什么了,而且还有要求,必须是这个电平才选中这个IO。那么我们就可以使用与非门和或非门。与非门规定了,有0出1,或非门是有1出0。利用这个特性,当地址线需要为0时候,就放一个或非门,如果地址线为1时候,就直接连接与非门。
<3>以这个题目为例,因为A9和A3为高电平,所以他们俩直接连接与非门。而其他地址线均为低电平,那么在地址线和与非门中间,都穿插了一个或非门。
(18)设一个外设接口的IO端口地址为300H~307H,即该外设需要8个连续的IO端口地址,设计该接口的端口地址译码器。
(1)这种题目就是上一个题目的升级版本,需要增加一个74LS138芯片。
(2)
<1>首先,我们需要知道300H~307H没有变化的地址线是哪些。很显然,只有A0 ~ A3这三根地址线发生了变化,其他的没有变化。
<2>因此,我们先将AEN连接E2。A0 ~ A3直接连接ABC三个引脚。
<3>其他几根线和上一题一样,高电平直接连接与非门,低电平先连接或非门再连接与非门。
(19)CPU和外设之间的数据传送方式有哪几种?各传送方式有何特点,适用于哪些应用场合?
(1)CPU何外设之间的数据传送方式:
<1>无条件传送
<2>查询传送
<3>中断控制
<4>DMA控制方式
(2)
<1>无条件传送方式是一种最简单的程序控制传送方式。程序控制输入/输出方式是指在程序的编制中利用 I/O 指令来执行输入/输出的一种方式。
<2>查询传送方式时, CPU 通过程序主动读取状态寄存器以了解接口情况,并完成相应的数据操作。查询操作需要在时钟周期较少的间隔内重复进行,因而 CPU 效率低。
<3>中断传送方式时,当程序常规运行中,若外部有优先级更高的事件出现,则通过中断请求通知 CPU, CPU 再读取状态寄存器确定事件的种类,以便执行不同的分支处理。这种方式 CPU 效率高且实时性好。
<4>DMA( Direct Memory Access)传送方式,即直接内存存取方式。数据传送的具体过程直接由硬件( DMA 控制器)在内存和 IO 之间完成, CPU 只在开始时将控制权暂时交予 DMA,直到数据传输结束。这种方式传送速度比通过 CPU 快,尤其是在批量传送时效率很高。
(20)什么是并行通信?并行通信有什么特点?
(1)并行数据通信是指以字节或字为单位的数据传输方式。
(2)
<1>每次传送的数据位数多,速度快;
<2>信号传输线的开销大(数据线的数量对应于传送的数据位数),成本高;
<3>常用于近距离、高速度的数据传输场合。
(21)当数据从8255A的端口C向数据总线上读入CPU时,8255A引脚CS#、A1、A0、RD#、WR#分别是什么电平?
CS#应为低电平,才能选中芯片。
A1,A0为10,才能选中C端口。
RD#应为低电平(负脉冲)。
将数据读入CPU,WR#为高电平。
(22)设8255A的4个端口地址为60H~63H,试编写下列各种情况下的初始化程序。
(1)将A组和B组设置为方式0,A口、B口为输入,C口为输出。
<1>这种题目其实比较简单,按照套路来就可以了。
<2>首先,题目一般给出的是4个端口地址,那么我们只需要看数值最大的端口地址即可。因为8255A的4个端口地址默认顺序为A、B、C、控制口。因为我们这里是初始化程序,所以只需要关注控制口。
<3>关于控制口的寄存器介绍,我们只需要知道如下图。(一般来说,题目会给出的。应该不会有250要你记住)
<4>知道第二步和第三步的流程之后。现在就可以开始分析这个题目怎么做了。首先,我们知道数字最大的端口为63H,那么记住这个数。其次,根据题目要求,A口是方式0,输入,所以D6、D5为00,D4为0。B口是方式0,输入,所以D2为0,D1为0。C口为输出,所以D3和D0为0。D7默认为1。
MOV DX,0063H ;H表示16进制
MOV AL,10010010B ;B表示2进制
OUT DX,AL ;将数据写入地址63H
(2)将A组设置为方式2,B组为方式1,B口作为输出。
<1>依旧是按照上图,因为A要为方式2,所以D6为1,D5为0。
<2>因为B组为方式1,所以D2为1。B组为输出,所以D1为0。
<3>除了D7默认为1以外,其他位随便写。为了方便所以其他位我统一为0。
MOV DX,0063H ;H表示16进制
MOV AL,11000100B ;B表示2进制
OUT DX,AL ;将数据写入地址63H
(3)将A口和B口均设置为方式1,均为输入,PC6和PC1为输出。
<1>因为A口为方式1,输入。所以D6为0,D5为1,D4为1。
<2>因为B口为方式1,输入。所以D2为1,D1为1。
<3>因为PC6和PC1为输出,所以D3为0,D0为0。
MOV DX,0063H ;H表示16进制
MOV AL,10110110B ;B表示2进制
OUT DX,AL ;将数据写入地址63H
(4)A口工作在方式1,输入;B口工作在方式0,输出;C口的高4位配合A口工作,低4位为输入。
<1>因为A口为方式1,输入。所以D6为0,D5为1,D4为1。
<2>因为B口为方式0,输出。所以D2为0,D1为0。
<3>因为C口的高4位配合A口工作,而A口为输入,所以C口高四位PC4-PC7应该为输出,D3为0。
<4>因为C口的低4位为输入,所以D0为1。
MOV DX,0063H ;H表示16进制
MOV AL,10110001B ;B表示2进制
OUT DX,AL ;将数据写入地址63H
(23)可编程定时/计数器8253有几个通道?各通道有几种工作方式?各种工作方式的主要特点是什么?
(1)0,1,2三个通道。
(2)各通道有6种工作方式。
(3)
<1>方式0:计数结束产生中断
<2>方式1:可编程单拍脉冲
<3>方式2:频率发生器
<4>方式3:方波发生器
<5>方式4:软件触发选通
<6>方式5:硬件触发选通
(24)设8253计数器的输入时钟频率为2MHZ,为产生20KHZ的方波输出信号,应向计数器装入的计数初值为多少?
因该传入初值为100
2 M H Z 20 K H Z = 100 \frac{2MHZ}{20KHZ}=100 20KHZ2MHZ=100
(25)设8253的IO端口地址为300H~303H,试对8253三个计数器进行编程,使计数器0工作于方式1,计数初值为8253H;计数器1工作与方式2,计数初值为7788H;计数器2工作于方式3,计数初值为1000。
(1)首先,我们需要知道8253的IO端口有4个,默认由小到大是通道0,通道1,通道2,控制端口。
(2)8253的控制字如下。为了防止还有人不太了解,所以讲解一些这些控制字的含义
<1>8253有3个计数器,可以根据情况选择。
<2>计数器有4种状态,如果是锁存,那么就不会进行计数。如果是01,那么就是只有低8位进行计数。如果是10,那么就是搞八位进行计数。如果是11,那么就是16位进行计数。(注:这个有点像TI的芯片。定时器分为定时器A和定时器B,定时器A和定时器B分别代表一个16位定时器的高低8位,但是为了获得更大的计数范围。一般将定时器A和定时器B合成一个,也就相当于这里的D5和D4写入1)
<3>8253有6种工作方式,如上题。
<4>最后一个二进制计数和BCD码计数有什么区别呢?很简单,如果我们向寄存器种写入 1234,如果D0为0那么1234就是16进制数,换算成10进制就是4660。如果是BCD码计数,也就是D0为1,那么寄存器中的1234就是十进制的。
(4)有了前置基础之后,咱们现在就可以开始编写程序了。
<1>因为我们是需要控制的计数器0。所以D6和D7为0。
<2>因为8253H无法用8位数据存储,所以D5和D4为1。
<3>因为要求方式1,所以D3-D1为001。
<4>8253H为16进制数,所以我们这里D0写入0。
<5>写完控制字之后,还需要向计数器0中传入计数初值8253H。注意,这里需要先写入低8位,再写入高8位。
MOV DX,303H
MOV AL,00110010B
OUT DX,AL ;设置计数器0工作于方式1,二进制计数
MOV DX,300H ;因为计数器0为最小地址
MOV AX,8253H
OUT DX,AL ;先写入低八位,控制字中规定的
OUT DX,AH
(5)按照上面的套路,显然就很简单了。
<1>计数器1工作于方式2,那么控制字里面应该是0111 0100B或0111 1100B。因为控制字的方式2规定了,D3可以为任意值。
<2>初值7788H写入方式如上
MOV DX,303H
MOV AL,01110100B
OUT DX,AL ;设置计数器1工作于方式2,二进制计数
MOV DX,301H ;计数器1的地址
MOV AX,8253H
OUT DX,AL ;先写入低八位,控制字中规定的
OUT DX,AH
(6)依旧按照上面套路。
<1>计数器2工作于方式3,那么控制字里面应该是1011 0111B或1011 1111B。因为控制字的方式2规定了,D3可以为任意值。这里需要注意的是,写入的数据为十进制的,所以D0为1。
<2>初值1000写入方式如上
MOV DX,303H
MOV AL,10110111B
OUT DX,AL ;设置计数器2工作于方式3,BCD计数
MOV DX,302H ;计数器2的地址
MOV AX,1000
OUT DX,AL ;先写入低八位,控制字中规定的
OUT DX,AH
(26)8086CPU的中断分为哪两大类?什么是硬件中断和软件中断?在PC中两者的过程有什么不同?
(1)硬件中断,软件中断。
(2)
<1>硬件中断是通过中断请求线输入电信号来请求处理机进行中断服务。
<2>软件中断是处理机内部识别并进行处理的中断过程。
(3)
<1>硬件中断一般是由中断控制器提供中断类型码,处理机自动转向中断处理程序;
<2>软件中断完全由处理机内部形成中断处理程序的入口地址并转向中断处理程序,不需外部提供信息。
(27)什么是非屏蔽中断?什么是可屏蔽中断?它们得到CPU响应的条件是什么?
(1)不可屏蔽中断:由NMI引脚引入的不受中断允许标志位IF影响的中断请求是非屏蔽中断。
(2)可屏蔽中断:由INTR引脚引入的受中断允许标志位IF影响的中断请求是可屏蔽中断。
(3)只要NMI上请求脉冲的有效宽度大于两个时钟周期,CPU就能将这个请求信号锁存起来,当CPU在NMI上采样到一个由低到高的跳变信号时,就自动进入NMI中断服务程序。对于可屏蔽中断,CPU将根据中断允许标志位IF的状态决定是否响应。如果IF=0,CPU不理会该中断请求而继续执行下一条指令;如果IF=1,CPU执行完现行指令后会转入中断响应周期。
(28)什么是中断类型号?什么是中断向量?什么是中断向量表?在基于8086CPU的微机系统中,中断类型号和中断向量之间有什么关系?
(1)中断类型号:系统为每一个中断源分配的代号
(2)中断向量:存放所有类型中断处理程序入口地址的一个默认的内存区域。
(3)中断向量表:把系统所有中断及其对应的中断向量按一定规律存放在一个区域内。
(4)在8086CPU中,中断类型号与中断向量关系:中断类型号乘以4得到向量表的入口。
(29)什么是中断源?什么是中断优先级?什么是中断嵌套?
(1)中断源:引发中断的事件
(2)中断优先级:将中断按轻重缓急分为若干级别叫中断优先级
(3)中断嵌套:允许中断优先级高的中断源中断正在执行的低优先级的中断服务程序叫中断嵌套。
(30)8086CPU总共有多少级中断?它们的中断类型号是多少?中断向量表设在存储区的什么位置?
(1)256级中断
(2)中断类型号为0~255
(3)中断向量表存储在内存0处开始,0000:0000到0000:03FF的1024个单元存放。
DMA控制器8237A的工作方式有哪4种?各种工作方式的特点和应用场合是什么?
<1>单字节传输模式:8237A每完成1个字节传输后,释放系统总线。
<2>块传输模式:可以连续进行多个字节的传输,只有当字节计数器减为零,才释放总线而结束传输。
<3>请求传输模式:只是在每传输1个字节后,如果检测到DREQ端变为无效电平,则停止传输,当DREQ又变为有效电平时,就在原来的基础上继续传输。
<4>级联传输模式:几个8237A可以进行级联,构成主从式DMA系统,最多可以由5个8237A构成二级DMA系统,得到16个DMA通道,级联时,主片通过软件在模式寄存器中设置为级联传输模式,从片不用设置级联方式。
(31)在串行通讯种有哪几种数据传送方式,各有什么特点?
(1)单工、半双工和全双工。
(2)单工传送:只有一条通信传输线,而且只允许数据按照一个固定的方向传送。也就是说一方只能是数据发送方,另一方只能是数据接收方。
(3)半双工传送:也只有一条通信传输线,通信双方均具备数据接收和发送的能力。但这种方式只能采用分时复用的方式进行传送数据,也就是说在同时时刻只能在一个方向上传送数据,要实现双向传送数据,发送和接收只能交替进行。
(4)全双工传送:有两条通信传输线,通信双方可同时发送和接收数据,通信双方都具有独立的发送器和接收器,各有一条传输线将其连接,从而克服了单工和半双工方式所带来的双方不能同时发送和接收数据的缺点。
(32)全双工和半双工通讯的区别是什么?在二线制电路上能否进行全双工通信?
(1)半双工数据传输允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信。而全双工数据通信允许数据同时在两个方向上传输。
(2)不能,在二线制电路上是不能进行全双工通信的,只能单端发送或接收。因为一根信号线,一根地线,同一时刻只能单向传输。