您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页微机原理简答题汇总

微机原理简答题汇总

来源:华佗小知识
一、简答题基础原理背记部分

1.微型计算机由哪几部分组成?简述各部分功能。(4分)

微型计算机由CPU、存储器、I/O端口、总线组成;微处理器(CPU):微型计算机的控制中心,主要完成取指令、指令的译码、简单的算术和逻辑运算以及程序控制等任务;存储器:存储程序和数据;I/O端口用于外设和CPU之间的信息的传递和协调;总线:CPU与存储器和I/O接口之间传送数据信息、地址信息和控制信息的通道。

2. CPU与外设之间的数据传送方式包括程序控制方式、中断方式和DMA方式,请问程序控制方式又分为哪两种方式?这两种方式在与外设进行数据传送时有什么区别?(4分) 程序控制方式分为无条件传送方式和有条件传送方式。

无条件传送方式在与外设进行数据传送时不需要查询外设状态,可根据需要随时进行输入或输出操作;有条件传送方式在进行数据传送前,必须先确认外设已处于准备传送数据的状态,才能进行输入或输出操作。

3.8086CPU从内部结构上分为哪两部分?并简述各部分功能?(4分)

8086CPU从内部结构上分为总线接口单元(BIU)和执行单元(EU)。总线接口单元(BIU)负责物理地址形成、取指令、指令排队、读写操作数和总线控制。 执行单元(EU)负责指令译码和执行执行。

4.设计I/O接口电路的基本原则是什么?为什么?(4分)

设计I/O接口电路的基本原则是“输入要缓冲,输出要锁存”

为了解决CPU为多个外设服务,与外设之间存在的速度不匹配的问题,采用这样的原则,缓冲器可以使CPU不被某一外设独占,CPU的运行速度比较快,输出数据通常要经过锁存才能被外设读取。

5.CPU中总线接口单元BIU的基本功能是地址形成、取指令、指令排队、存取操作数和总线控制等,请简要说明BIU中有哪些组成部分可以完成以上所述的功能。(4分)

段寄存器、指令指针寄存器;地址加法器;指令队列;总线控制逻辑。

6.CPU中的AX或AL寄存器被称为累加器,它在CPU运行过程中有着非常重要的作用,有些指令的执行必须并且只能使用累加器,请列出两种这样的指令,并说明累加器的功能。(4分)

IN AL,port;端口输入的数据放在累加器 OUT port,AL;输出到端口的数据存放在累加器 XLAT;表内位移放在AL,表转换结果放在AL

第1页 共5页

DAA;BCD调整的数据存放在AL MUL 源操作数;AX ←AL*源

DIV 源操作数;AL←AX/源的商

SCAS 目的字符串; AL/AX(字节/字操作)内容减去ES:DI中的串元素

7.条件传送接口电路中至少应包括什么端口?并简述条件传送的工作过程。(3分) 条件传送端口至少应包含数据端口和状态端口。条件传送过程:先读取状态端口的信息,检测是否准备好交换数据,若已准备好,则与数据端口进行数据交换;否则继续读取状态端口,直到数据准备好。(包含两个端口的原因由其工作过程可以看出)

2.画出微型计算机的组成框图,并简述各部分功能。(4分)

功能见本部分第一题

二、简答题关于8086CPU寻址方式以及指令对错的分析题 1.写出下列指令中源操作数的寻址方式。(4分) (1) MOV AX,BX 寄存器寻址方式 (2) MOV AX,[2000H] 直接寻址

(3) MOV AX,[BX+DI] 基址加变址寻址方式 (4) MOV BX,OFFSET BUFF 立即寻址方式

【解析】8086/8088有七种基本的寻址方式:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,相对基址变址寻址。其中,后五种寻址方式(即直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址和相对基址变址寻址)属于存储器寻址,用于说明操作数或操作数地址所在存储单元的地址。这五种方式也

就是确定存放操作数的存储单元有效地址EA的方法,这里所说的有效地址就是在前面一节讲存储器分段中所说的段内偏移地址。除了这些基本的寻址方式以外,还有固定寻址、段间转移寻址和I/O端口寻址等。 关于七种基本寻址方式解释如下: 1. 立即寻址方式

立即数:操作数包含在指令中,它作为指令的一部分,跟在操作码后存放在代码段。这种操作数称为立即数。

立即寻址方式所提供的操作数紧跟在操作码后面,与操作码一起放在指令代码段中,不需要到其他地址单元中去取。立即数可以是8位,也可以是16位。这种寻址方式主要用于给寄存器或存储单元赋初值的场合。立即寻址方式是这七种寻址方式中速度最快的寻址方式。

举例:MOV AX, 1234H ; 给AX寄存器赋值为1234H 2. 寄存器寻址方式

寄存器寻址的特点是操作数在CPU内部的寄存器中,在指令中指定寄存器号。 对于16位操作数,寄存器可以是AX、BX、CX、DX、SI、DI和SP等; 对于8位操作数,寄存器可以是AL、AH、BL、BH、CL、CH、DL和DH。 例如:MOV SI, AX MOV AL, DH

由于操作数在寄存器中,不需要通过访问存储器来取得操作数,所以采用寄存器寻址方式的指令执行速度较快。 3. 直接寻址方式

直接寻址的操作数在存储器中,指令直接包含有操作数的有效地址。由于操作数一般存放在数据段,所以操作数的地址由DS加上指令中给出的16位偏移得到。

假如DS内容是5000H,地址为51234H字存储单元中的内容时67H,那么在执行“MOV AX, [1234H]”后寄存器AX的内容是67H。由于该指令所用的段寄存器为DS,所以该条指令还可以写为\"MOV AX, DS:[1234H]\"。当然,除了DS段寄存器以外,还可以指定其他段寄存器。

例如:MOV ES:[5678H], BL ; 指定ES作为段寄存器

这种寻址方式常用于处理单个存储器变量的情况。它可以实现在K字节的段内寻找操作数。直接寻址的操作数通常是程序使用的变量。

4. 寄存器间接寻址方式

寄存器间接寻址的操作数在存储器中,操作数有效地址在SI、DI、BX、BP这四个寄存器之一中。在一般情况下,如果有效地址在SI、DI和BX中,则以DS段寄存器的内容为段值;如果有效地址在BP中,则以SS段寄存器的内容为段值。 例如:MOV AX, [SI] ; 自动引用DS作为段寄存器

假设 (DS)= 5000H, (SI)= 1234H那么存储的物理存储单元地址是51234H。再设该字存储单元的内容是67H,那么在执行该指令后,(AX)= 67H。

当然也可以指定段超越前缀,如:MOV DL, CS:[BX] ;引用的段寄存器是CS

如果有效地址在BP中,那么引用的段寄存器为SS。如:MOV [BP], CX ;此时引用的段寄存器是SS

这种寻址方式可以用于表格处理,在处理完表中的一项后,只要修改指针寄存器的内容就可以方便地处理表中的另一项。

注意同寄存器寻址方式的书写方式予以区别。 5. 寄存器相对寻址方式

操作数在存储器中,操作数的有效地址是一个基址寄存器(BX、BP)或变址寄存器的(SI、DI)内容加上指令中给定的8位或16位位移量之和。 即 EA = (BX)或(BP)或(SI)或(DI) + 8位或16位位移量

在一般情况下,如果SI、DI或BX的内容作为有效地址的一部分,那么引用的段寄存器是DS。如:MOV AX, [DI+1223H] ; 引用的段寄存器是DS

假设,(DS)= 5000H,(DI)= 3678H。那么,存取的物理存储单元地址是54BH。再假设该字存储单元的内容是55AAH,那么在执行该指令后,(AX)= 55AAH。

而当BP的内容作为有效地址一部分时,那么引用的段寄存器是SS,如:MOV BX, [BP-4] ; 引用的段寄存器是SS

当然也可以自行指定段寄存器,如:MOV ES:[BX+5], AL ; 引用ES作为段寄存器 这种寻址方式同样可用于表格处理,表格的首地址可设置为指令中的位移量,利用修改基址或变址寄存器的内容来存取表格中的项值。 以下两种写法等价: MOV AX, [SI+3] MOV AX, 3[SI] 6. 基址变址寻址方式

操作数在存储器中,操作数的有效地址由基址寄存器之一的内容与变址寄存器之一的内容相加得到。即:EA = (BX)或(BP) + (SI)或(DI)

在一般情况下,如果BP的内容作为有效地址的一部分,则以SS的内容作为段值,否则以DS的内容作为段值。当所得的有效地址超过FFFFFH时,就取其K的模。 例如: MOV AX, [BX+DI] ; 此时引用DS段寄存器

假设,(DS)= 5000H,(BX)= 1223H, (DI)= 54H那么,存取的物理存储单元地址是51277H。再假设改字存储单元的内容是168H,那么在执行该指令后,(AX)= 168H 当然,还可以增加段超越前缀来指定段寄存器。 例如:

MOV AX, ES:[BX+SI] ; 引用ES作为段寄存器 MOV DS:[BP+SI], AL ; 引用DS作为段寄存器

这种寻址方式适用于数组或表格处理。用基址寄存器存放数组首地址,而用变址寄存器来定位数组中的各元素,或反之。 另外,以下两种表示方法是等价的: MOV AX, [BX+DI] MOV AX, [DI][BX] 7. 相对基址变址寻址方式

操作数在存储器中,操作数的有效地址由基址寄存器之一的内容与变址寄存器之一的内容及指令中给定的8位或16位位位移量相加得到。即:EA = (BX)或(BP) + (SI)或(DI) + 8位或16位位移量。在一般情况下,如果BP作为有效地址的一部分,则以SS段寄存器的内容为段值,否则以DS段寄存器的内容为段值。在指令中给定的8位或16位位移量采用补码形式表示。在计算有效地址时,如果偏移量是8位,那么被带符号扩展成16位。当所得的有效地址超过FFFFH时,就取其K的模。 举例:MOV AX, [BX+DI-2] ; 自动引用DS作为段寄存器

假设,(DS)= 5000H,(BX)= 1223H, (DI)= 54H,那么,存取的物理存储单元地址是51275H。再设该字存储单元的内容是7654H,那么在执行该指令后,(AX)= 7654H 以下四种表示方法均是等价的: MOV AX, [BX+DI+1234H] MOV AX, 1234H[BX+DI] MOV AX, 1234H[BX][DI]

MOV AX, 1234H[DI][BX]

尽管相对基址变址这种寻址方式最复杂,但也是最灵活的。 2.判断下列指令的对错;若有错,简述原因(3分)

(1)MOV AX,[BX][BP]

错。对存储单元寻址时,BX和BP不能同时出现在[]中。 (2)MOV [1000H],[SI]

错。存储单元之间不能直接传送数据。 (3)MOV AL,0200H

错。原操作数和目的操作数长度不一致。(如果AL改为AX,或者0200H改为02H就正确了)

3.判断以下指令格式是否正确,若错误,请说明理由。(4分)

(1) MOV DS,1000H

错误,不能将立即数直接送入段寄存器。 (2) MOV AX,[SI+DI]

错误,基址变址寻址方式方括号里不能同时出现同组寄存器(所谓同组寄存器就是BI和BP,SI和DI,但是不同组的例如BI和SI就可以了)。

(3) PUSH AL

错误,堆栈操作指令不能处理字节数据(应把AL改为AX)。 (4) OUT 310H,AL

错误,直接端口寻址的端口地址不能超过FFH(255H)。 4.判断下列指令的对错;若有错,简述原因(3分)

(1)MOV [DI],[BX]

错,两个存储单元之间不能直接传送数据 (2)PUSH AL

错误,堆栈操作指令不能处理字节数据(应把AL改为AX) (3)JMP 0100H 正确

三、简答题部分关于中断的题

1.若对应中断类型号为30H的中断服务程序存放在2300H:3460H开始的区域中,画出该中断向量在内存中的存放形式?试编写一程序段完成该中断向量的设置。(5分)

(1)画中断向量在内存中的存放图(2分)

中断类型号为30H,则中断向量地址为…30*4=120=C0H,则初地址为000C0H,然后就是入栈过程,先存储的是偏移地 000C0H 60H … 址,然后是逻辑地址

34H 先是存放低八位,再存放高八位 00H

23H …

(2)中断向量设置程序段(3分) MOV AX,2300H;设置中断向量

或 MOV DS,AX;把中断向量放入段寄存器 MOV DX,3460H (1分)

MOV AL, 30H (1分)

MOV AH, 25H

INT 21H (1分)

2.简述可屏蔽中断处理的过程。(3分)

1、中断请求; 2、中断响应 3、保护断点

4、转入执行终端服务子程序

MOV AX,0

MOV DS,AX

MOV BX,00C0H MOV WORD PTR[BX], 3460H MOV WORD PTR[BX+2], 2300H

5、保护中断现场 6、中断处理 7、恢复现场 8

1分)1分)1分)回

3.中断类型号的获取方式有哪几种?中断类型号与中断向量在中断向量表中存放地址的关系如何?假设中断类型号为30H,中断服务程序入口处标号为PRO,写出设置中断向量的程序段。(8分)

对于专用中断:除法出错、单步中断、不可屏蔽中断、断点中断和溢出中断,由CPU分别提供中断类型号0~4;对于用户自己定义的软件中断INT n,类型号由n决定;对于INTR引脚上的中断:1)有硬件电路设计产生中断类型号,2)用8259A获取中断类型号。 若中断类型号为n,则中断向量在内存单元中的存放地址为4n~4n+3单元. n=30H的中断向量设置: 方法一: MOV AX,0 MOV AX,SEG PRO MOV DS,AX MOV DS,AX MOV BX,30H*4 MOV DX,OFFSET PRO MOV AX,OFFSET PRO MOV AL,30H MOV [BX],AX MOV AH,25H MOV AX,SEG PRO INT 21H MOV [BX+2],AX 方法二:

4.简述一般子程序调用过程和矢量中断服务子程序调用过程的主要异同。(4分) 同:都要保护断点,程序流程转向相应的子程序去执行且执行完后都要返回。(2分) 异:一般子程序入栈保护的是IP或CS和IP,中断服务子程序入栈入栈保护的是Flags、CS和IP;一般子程序的返回指令为RET,中断服务子程序的返回指令为IRET。

5.CPU响应可屏蔽中断请求的条件是什么?(4分) (1)外设提出中断请求 (2)本中断未被中断控制器屏蔽 (3)本中断优先级最高 (4)CPU允许中断

1.某程序数据段中存放了2个字,1234H和5060H,已知DS=7850H,数据存放的偏移地址为3121H及285AH。试画图说明它们在存储器的存放情况,若要读取这两个字,需要对存储器进行几次操作?(5分)

(1)计算2个字的物理地址

第1个字:7850H×10H + 3121H = 7B621H 第2个字:7850H×10H + 285AH = 7AD5AH

(2)画存储器分布图 (2分,每字存储1分)

7B621H 7AD5AH

…… 60H 50H …… 34H 12H

…… 注:不计算物理地址,直接用逻辑地址表示存储单元也可以

(3)操作次数 (1分) 从7B621H这个奇地址单元读取一个字需要访问2次存储器,从7AD5AH偶地址单元读取一个字需要访问1次存储器,所以共需要对存储器进行3次操作。

9.已知8255A的接口电路如下图所示,端口地址分别为:80H~83H,编写程序段实现用4个LED反映4个开关的状态。要求:开关合上灯亮,开关断开灯灭。(5分) 程序片段: MOV AL,90H OUT 83H,AL IN AL,80H MOV CL,4 SHR AL,CL NOT AL OUT 81H,AL

2. 指令的执行是通过译码产生有效的电平驱动三总线,完成相应的功能。请简述指令 MOV

AX,[2000H] 的执行过程(需说明BHE、ALE、M/IO、RD引脚上的有效电平和作用)。(4分)

指令译码,输出20位物理地址,BHE=0,配合ALE=1时锁存地址,M/IO=1选通存储器,

RD=0时控制读选通,奇地址和偶地址存储体同时选通,16位数据通过数据总线送入CPU的

D7-0 IOW IOR A1 A0 80H~83H 8255A D7-0 WR RD A1 A0 CS PB3 PB2 PB1 PB0 PA7 PA6 PA5 PA4 L3 L2 L1 L0 +5v K3 +5v K2 +5v K1 +5v K0

AX寄存器。

3. 查询式输入方式的接口电路如下图所示,请简述它的工作过程。(4分)

查询式输入:外设准备数据,准备就绪后发状态信号Ready=1,CPU在此期间不断查询外设状态端口,当Ready=1时,从数据缓冲器读取数据,并且清除状态标志,使Ready=0,为下一次数据传送做准备。评分标准:外设准备数据,状态信号Ready置位1分;读状态1分;判断状态1分;读数据清状态信号1分。

4. 在计算机中带符号数都是以补码形式进行存储和运算的,减法可以用补码加法的方式去实

现。请用8位带符号数补码加法计算表达式15-8的结果,给出计算过程,并分析运算后标志寄存器中SF、PF、ZF、OF的状态。(5分) 00001111 (15补码) +11111000 (-8补码) 100000111 (7补码)

SF=0, PF=0, ZF=0, OF=0

3.画图说明下面语句所分配的存储空间及初始化的数据值。(3分)

BUF DW 2 DUP(1),-1,‘AB’

4.给定一个堆栈存储区,其地址为1270H:0000H~1270H:0100H,SS=1270H,SP=0052H,问:(1)栈顶的逻辑地址是多少?(2)栈底的物理地址是多少?(3)若压入数据1234H,数据在内存中如何存放?此时SP的值是多少?(4分)

(1)栈顶逻辑地址是1270H:0052H;(2)栈底偏移地址0100H,栈底逻辑地址1270H,

则栈底的物理地址为1270*10+0100=12800H; (3) SP=0050H

5.已知DS=3000H,在物理地址为34780H的内存单元中存放有字节数据20H,要求采用3种不同的寻址方式将该字节数据送入寄存器AL中,试写出寻址方式的名称及相应的程序片段。(4分)

由于物理地址=34780H,且DS=3000H,所以EA=34780H-3000*10H=4780H

… 34 12 … 1270H:0050H 1270H:0051H

(1)直接寻址

MOV AL,[4780H] (2)寄存器间接寻址 MOV BX,4780H MOV AL,[BX] (3)寄存器相对寻址 MOV BX,4700H MOV AL,[BX+80H]

9.简述指令性语句和伪指令语句的主要差别,并列出汇编语言中常用的伪指令。(4分) (1)主要差别

指令性语句:有对应的机器码,在程序运行时执行指令性语句; 伪指令语句:没有对应的机器码,汇编过程中执行伪指令语句 (2)常用的伪指令

DB、DW、EQU、SEGMENT……ENDS、ASSUME、PROC……ENDP、ORG、END 10.下图为8088最小系统与某存储芯片构成的RAM存储器系统。(4分) (1)说明一片RAM芯片的存储容量为多少? (2)计算该存储器区的总容量为多少? (3)说明每片RAM芯片的地址范围? A10-19 M/IO D 0-7 8088 最小 系统 10 8D0-7 1#A0-9 WE A0-9 WR 10 CS D0-7 2#A0-9 WE CS 10:1024 Y1 Y0

(1)存储容量为:1K×8或1KB (3)1#芯片地址范围:00000H~003FFH (2)总容量为:2K×8或2KB 2#芯片地址范围:00400H~007FFH

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务