微机原理习题与答案第一章微机基础1-1微处理器、微机与微机系统三者之间有什么不同?答:微处理器一般也称为CPU,它本身具有运算能力和控制功能。微型计算机是由CPU、存储器、输入/输出接口电路和系统总线构成的裸机系统。微型计算机系统是以微型计算机为主机,配上系统软件和外设之后而构成的计算机系统。微处理器是微型计算机的一组成部分,而微型计算机又是微型计算机系统的一组成部分。1-2CPU在内部结构上由那几部分组成?答:8位CPU在内部结构上由寄存器阵列、算术逻辑运算单元ALU、控制器和内部总线及缓冲器等部分组成。1-3总线接口部件有哪些功能?8086的执行部件有什么功能?答:总线接口部件的功能是负责与存储器、I/O端口传送数据。执行部件的功能是负责指令的执行。1-48086/8088的状态标志和控制标志分别有哪些?答:8086/8088的状态标志有6个:CF、AF、SF、PF、OF、ZF,控制标志有3个:TF、DF、IF。1-58086/8088和传统的8位计算机相比在执行指令方面有什么不同?这样的设计思想有什么优点?答:8位饥是取一条指令,执行一条,再取,再执行;8088执行时,取指与执行几乎是同时进行的。1-68086/088微处理器中有哪些寄存器?通用寄存器中哪些可以作地址指针用?答:8086/8088各有14个寄存器,它们可分为3组:(1)四个通用寄存器和四个变址和指针寄存器,即AX,BX,CX,DX,SP,BP,SI,DI。(2)四个段寄存器,即CS,DS,SS,ES。(3)两个控制寄存器,即IP,FR。1-78086/808820位物理地址是怎么样形成的?当CS=2000H,IP=0100H,其指向的物理地址等于多少?答:物理地址=段地址×16+段内偏移地址。201002-1试述8088微处理器的各种寻址方式,并写出各种寻址方式的传送指令1~~2条(源操作数寻址与目的操作数寻址)答:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,变址寻址,基址加变址寻址。第三章汇编语言程序设计3-2指令ANDAX,XANDY中X和Y是两个已赋值的常量,问:两个AND操作分别在什么时间进行?功能上有何区别?答:指令中的XANDY操作在程序汇编时进行,该操作完成后得到一个数,即为指令中的第二操作数。由此得到“ANDAX,立即数”这样形式的一条指令,由汇编器将其翻译为机器码。该指令中的AND操作由CPU在执行指令时完成,结果存于AX中,并影响F寄存器。3-3指出以下三条指令的区别(NUM为数据段一个变量名)。(1)MOVSI,NUM(2)LEAS1,NUM(3)MOVSI.OFFSETNUM(1)内容送SI(2)把NUM的值送SI地址(3)把NUM的偏移地址送SI答:(1)指令执行后SI取得酌是内存变量NUM的值。(2)指令执行后SI取得的是内存变量NUM的偏移地址(3)同(2)。第五章输入与输出接口技术5-1数据信息有哪几类?CPU和输人输出设备之间传送的信息有哪几类?相应的端口称为什么端口?答:数据信息有:1数字量,2模拟量,3开关量信息有:数据信息,状态信息和控制信息。其端口分为数据端口,状态口,控制端口。5-2计算机对I/O端口编址时通常采用哪两种方法?在8088/8086系统中采用哪种方法?在IMBPC系列微机中端口的地址范围多大?其中用户可用的地址范围是多少?答:端口的编址通常有存储器映射方式和I/O映射方式。8086/8088系统采用的是I/O映射方式。IBMPC系列微机端口地址取值范围是0~~3FFH,用到的地址线是A9~A0。用户可用地址必须大于等于200H,并且避开已占用或标明是保留的地址。5-3什么情况下两个端口可以用一个地址?答:一个端口做输入,一个端口做输出时,这两个端口可共用一个地址。5-4CPU和外设之间的数据传送方式有哪几种?无条件传送方式通常用在哪些场合?答:1.无条件传送2.查询方式:每次输出输入数据前,要查询外设的状态,准备好了再传送。3.中断方式:外设有传送要求时,就发送一个中断请求给CPU,请求处理,CPU响应,就完成这一中断服务。它允许CPU与外设同时工作。4.直接存储器存取方式(DMA)由一个硬件控制,在外设和存储器之间进行数据交换。CPU让出总线。5-5相对于查询方式,中断方式有什么优点?和DMA方式比较,中断传输方式有什么不足之处?答:中断方式可以使CPU与外设并行工作,所以比起查询方式,CPU的工作方式效率提高了。但中断方式仍然要由CPU通过指令来传送数据,对高速设备来说速度太慢了。DMA方式是在DMA控制器控制下进行数据传送,速度上限主要取决于存储器的存取速度,因此中断方式传输速度不及DMA方式。5-6设计一个外设端口地址译码器,使CPU能寻址四个地址范围:(1)240~~247H.(2)248—24FH,(3)250~~257H,(4)258~~25FH答:由于要寻址四个地址范围,选用译码器芯片比选用门电路好,电路简洁。所以选用74LS138译码器。5-8DMA控制器的地址线为什么是双向的?什么时候这DMA控制器传送地址?什么时候DMA控制器往地址总线传送地址?答:DMA控制器是一种总线控制器件,在DMA方式时,它替代CPU控制系统总线,完成外没与内存单元之间或者内存单元与内存单元之间的数据传送,所以它必须能向地址总线发出地址。在DMA控制器接管总线之前,CPU必须时它进行初始化编程,以确定DMA的工作方式、传送字节数、存储单元起始地址等等,为此CPU需要对DMAC内的寄存器寻址,写入内容DMAC也必须能接受地址信息。由于DMAC内有16个寄存器,所以它的低4位地址线是双向的。5-9对8253定时计数器三个通道进行初始化编程的顺序有没有要求?已知8253中#0、#1、#2计数器及控制寄存器地址分别为340H,342H,344H,346H,试对8253三个计数器进行编程使#0计数露设置为方式l,计数初值为2050H;#1计数器设置为方式2,计数初值为3000H,#2计数器设置为方式3,计数初值为1000。解:一般在每个计数器独立使用时,对8253定时计数器三个通道进行初始化的顺序没有特定要求,如果几个计数器配合使用,则可能对三个通道初始化顾序会有一定要求。对每个计数器都应该先写人控制字然后再写初值。本题8253四个地址均为偶数,这是系统地址总线的A2、A1分别连接8253的A1、A0所致。初始化编程如下:MOVDX,346HMOVAL,32HOUTDX,ALMOVAL,74HOUTDX,ALMOVAL,0B7HOUTDX,ALMOVDX,340HMOVAL,50HOUTDX,ALMOVAL,20HOUTDX,ALADDDX,2MOVAL,00HOUTDX,ALMOVAL,30HOUTDX,ALADDDX,2MOVAL,00HOUTDX,ALMOVAL,10HOUTDX,AL5-10若要采用一片8253产生近似为1Hz的方波,已知时钟频率为2MHz,8253地址为350一353H.试编写8253初始化程序,并说明通道引脚的连接方法。解:时钟频率为2MHz,要分频至1Hz,分频系数为2×10‘。一个8253的计数器分频系数最大为65536,所以必须用两个计数据串联起来工作。0#计数器分频系数定为104,1#计数器分频系数定为200。OUT。连接到CLK1,0#计数器输出的10000Hz波形作为1#计数器的时钟信号,经1#计数器104分频后得到1Hz的波形。初始化程序如下;MOVDX,353HMOVAL,35HOUTDX,ALMOVAL,77HOUTDX,ALSUBDX,3MOVAL,00HOUTDX,ALOUTDX,ALINCDXMOVAL,00HOUTDX,ALMOVAL,02HOUTDX,AL8253计数器级联时,应注意时常数装入时引起的计数误差。当用输出指令向8253某通道写入初值时,必须经过一个时钟上升沿和一个时钟下降沿之后,数值才装入计数寄存器,在此之前读出的计数器内容均无效。本题是产生周期波形,时常数写人的误差只在产生第一个周期时存在,对使用无影响。若计数器级联用作单次计数则必须注意初值装入引起的误差。它可以带来两个低位计数据溢出周期的误差,这在测量中往往是不能允许的。可以用软件的方法使OUT。变低,变高再变低,使在调量之前将初值装入计数寄存器中。向0#计数器写入0方式控制字可以使OUT。变低,向0#计数器写2方式控制字可以使OUT。变高,这样人为地制造一个时钟上升沿,一个时钟下降沿使初值装入高位计数寄存器。5-11当数据从8255A的端口C住数据总线上读出时。8255A的引脚CS、A1、A0、RD、WR分别是什么电平?5-12对8255A设置工作方式,其控制口地址为243H。要求端口A工作在方式1,输入:B口工作在方式1,输出:PC7和PC6基本输出用。答:数据从8255A的端口C读入CPU时,8255A的引脚CS应为低电平,这样才能选中8255A芯片;A1、A。应为10,即A1为高电平,A。为低电平,这样才选中C口;RD应出现低电子(脉冲),数据读人CPU;WR为高电平,处于无效状态。5-13若用一片8255A作为题5-7的接口芯片.对题5—7的程序和电路应作何修改?解:MOVDX,243HMOVAL,084HOUTDX,AL5-148255A的方式。一般使用在什么场合?在方式0时,如果要使用应答信号进行联络,应该怎么办?答:方式0一般用在无条件传送的场合,也可用于查询式传送。在方式0时。应答信号可以选用PC口的线做联络线。一般将PC口的上半部和下半部分为两部分,一部分的线做输出,一个部分的线做输入。5-158255A的方式控制字和C口置1/置0控制字都是写入控制端口的.它们是怎样区分的?在5—14题中,若允许A口中断,禁止B口中断,试写出相应的控制字。答:对最高位进行测试,如果为1,则为方式控制字。为0则为对C口的操作。第六章中断技术6-1什么叫中断?简述一个中断的全过程。答:外设向CPU发出的中断请求,处理外设的文件。CPU暂停当前的主程序。一个中断的全过程:(1)中断请求(2)中断响应(3)中断处理6-2确定中断的优先级(权)有哪两种方法?各有什么优缺点?IBMPC系列微机中断判忧用的是什么方法?答:确定中断的优先级有软件查询和硬件排队两种方法。硬件排队方法中常用的是矢量中断方法。软件查询方法所需电路比较简单:一是要把外设的中断请求触发器组合成一个端口供CPU查询,二是要将各外设的中断请求信号相或后作为CPU的中断请求信号送INTR引脚。在外设数量较多时.这位查询转人中断服务所耗费的时间较长。硬件优先权排队方法电路较复杂,要求外没不仅发出中断请求信号,而且还需提供设备的中断矢量(也称中断类型号),该矢量与中断服务程序地址有关,CPU接收该矢量后可以转入中断服务程序。这种方法中断响应速度快。IBMPC系列微机中断判优采用的矢量中断方法。6-38088/8086的中断分哪两大类?什么是中断向量?什么是中断向量表?8088/8086总共有多少级中断?它们的中断类型号是多少?中断向量表设在存储区的什么位置?答:分为硬中断和软中断。中断向量指的是中断服务程序的入口地址。中断向量表指所有中断服务程序入口地址的总和。放在存储器的某一区域。总共有256级。类型号0~255。在RAM区的起始段0000H~003FH的1K之内。6-4什么是非屏蔽中断?什么是可屏蔽中断?它们得到CPU响应的条件是什么?答:NMI:不能被CPU指令禁止,一旦出现这种请求,CPU立即响应。在CPU的17号脚上有一个由低到高的上跳边触发信号输入。INTR:可屏蔽请求。18号引脚上有一个“高”有效信号输入。CPU发中断响应INTA。6-58088/8086CPU怎样得到中断服务程序地址?请分别对软件中断和硬件中断加以说明。答:8088/8086CPU首先要得到中断类型号(矢量)n,然后通过中断矢量表得到中断服务程序入口地址。软件中断(包括系统定义的。0~~4号中断)。CPU从指令INTn中得到n。非