微机原理模拟题合集文档格式.docx
《微机原理模拟题合集文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理模拟题合集文档格式.docx(17页珍藏版)》请在冰点文库上搜索。
![微机原理模拟题合集文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/7/da7eaa4c-7a2d-4e98-9f3e-b939c2eb42fd/da7eaa4c-7a2d-4e98-9f3e-b939c2eb42fd1.gif)
8的SRAM芯片,则需这样的芯片4片。
1、典型的微处理器的内部结构可分为:
算术逻辑控制单元(ALU)、工作寄存器、控制器和I/O控制逻辑等四部分组成。
2、8086是16位CPU,它有20根地址线,可行成1MB的存储器地址空间;
有16根数据线,通过数据线能传输的有符号整数的范围为-32768~+32767;
有2种工作模式;
总共能管理64级中断源。
3、中断向量是中断服务程序的入口地址,(也称为中断指针),在一个微机系统中,若有4片8259A级联工作,能管理29级外部可屏蔽中断源。
4、微处理器是在统一的时钟信号CLK控制下,按节拍进行工作的,一个CLK的时间(周期)称为一个时钟周期,它是衡量微处器快慢的一个重要参数;
而衡量微处器快慢的另一重要参数是指令周期,它表示执行一条指令所需的时间。
5、8088/8086汇编语言中语句的种类包括指令语句、伪指令语句和宏指令语句。
6、微型计算机的输入/输出控制方式主要有无条件传送方式、程序查询方式、I/O中断方式和DMA方式等四种方式,其中DMA传送方式的突出优点是传送过程无须处理器的控制,数据也无须经过微处理器,而是直接在I/O设备与主存储器间进行,因此节省了微处理器的时间,使传送速率大大提高。
7、在计算机系统中,微处理器对存储器单元和I/O端口的编址方法有统一编址和独立编址两种方法,8086/8088CPU对存储器单元和I/O端口的编址采用的是统一编址方法。
当8086CPU工作在最小方式时,用于区分访问存储器或I/O端口的控制信号为M/IO。
8、若要给某8086CPU组成的微机系统配置8K字节的SRAM电路,若选用1K×
4的SRAM芯片,则共需16片。
9、在某I/O端口的地址译码当中,有3条地址线未参加译码,则有8个重叠地址。
10、8086CPU的RESET信号至少应保持4个时钟周期的高电平时才有效,该信号结束后,CPU内部的CS为_0FFFFH__,IP为_0000H__。
11、物理地址由段地址和偏移地址两部分组成。
若分配给某存储器单元的逻辑地址为8B90H:
5669H,则该单元的物理地址为90F69H。
12、TESTBX,[BX][SI]+28H指令的源操作数的寻址方式为基址、变址且相对寻址。
13、指令MOV[BX],00H的操作类型不明确,若将其操作类型指定为字型,则正确的指令为MOVWORDPTR[BX],00H。
14.指令JMPNEARPTRL1与CALLL1(L1为标号)的区别在于是否保存IP的内容。
15、将DL中保存的字母ASCII码变换成相应的小写字母的ASCII码的逻辑指令为ORDL,20H,而把它变换成相应的大写字母的ASCII码的逻辑指令为ANDAL,5FH
16、若(AX)=565BH,则CPU执行:
SUBAX,C546H指令后,CF=1,OF=1;
执行:
ANDAX,8219H指令后,OF=0。
17、执行下列三条指令后:
MOVSP,1000H
PUSHAX
CALLBX
(SP)=0FFCH。
18、主程序与子程序之间的参数传递方法有寄存器参数传递方式、存储单元参数传递方式及堆栈参数传递方式等三种。
二.简答题
1.变量定义后具有哪些属性?
段地址、偏移地址、类型、长度、大小等五个属性。
2.指令语句的作用是什么?
伪指令的作用是什么?
指令语句的作用是告诉CPU完成的某种操作,汇编后能产生机器代码。
伪指令语句的作用是告诉汇编程序完成的某种操作,汇编后不能产生机器代码。
3.为什么地址总线是单向的?
数据总线是双向的?
CPU通过地址总线输出地址码用来选择某一存储单元或某一I/O端口,所以地址总线是单向的。
数据总线用于CPU和存储器或I/O端口之间的数据传送,所以数据总线是双向的。
4.简述子程序与宏指令之间的区别。
子程序与宏指令都可以是程序中可能多次使用的一个程序段,在定义后,它们都可以被调用。
对源程序编写和程序的调试都带来了一定的方便。
但子程序的使用,节约存储空间,CPU执行效率低;
而宏指令的使用,浪费存储空间,CPU执行效率高。
5.ASSUME伪指令的作用是什么?
ASSUME伪指令的作用是告诉汇编程序哪个段名与哪个段寄存器建立关系。
1.8086CPU共有多少条地址线?
存储器寻址空间为多少?
I/O寻址空间为多少?
8086CPU共有20条地址线,存储器寻址空间为1MB;
I/O寻址空间为64KB
2.8086CPU对存储器的寻址有哪几个方式?
直接寻址,寄存器间接寻址,寄存器相对寻址,基址、变址寻址,基址、变址且相对寻址,共5种
3.写出汇编语言程序设计的基本步骤?
1分析问题
2提出算法及编程思想
3画流程图
4编写程序
5上机调试
写操作说明书
4.微处理器级总线有哪几种?
每种总线的作用是什么?
数据总线、地址总线、控制总线共三种。
数据总线----传送信息
地址总线----指示欲传信息的来源或目的地址
控制总线----管理总线上的活动
5.子程序的参数传递方法有哪几种?
寄存器传递、存储器传递、堆栈传递共三种
1.8086CPU取指令操作时,存储器的段地址与段内偏移地址由哪些寄存器提供?
CSIP
3.什么是汇编程序?
什么是汇编语言程序?
汇编程序是能将汇编语言程序翻译成机器语言程序的系统程序。
汇编语言程序是用户程序
4.画出循环程序的结构图?
一个循环程序应由哪几部分组成?
由初始化部分循环工作部分参数调整部分循环判断部分结果处理部分等五部分组成
5.8086CPU的结构有何特点?
8086CPU分BIU和EU两大部分。
BIU主要负责从外存储器中取指令,并将其放到指令队列中。
EU主要负责从指令队列中获取指令,并执行指令。
BIU和EU并行工作,提高了CPU的工作效率
三.识别下列指令是否正确,对于正确指令,分别说明源操作数的寻址方式,对于错误指令,说明其错误所在。
1.INAL,1000H
错。
当端口地址超过255时,必须用DX间接寻址。
2.MOVSB
对。
隐含寻址。
3.TESTAL,CX
类型不一致
4.LEADS,[BX]
目的操作数必须为通用寄存器
5.MULAX,[BX]
乘法指令中,目的操作数是隐含寻址。
6.POPCS
CS不能作目的
7.SHRDX,CL
当移位次数超过1次时,必须用CL提供移位次数
8.XOR[BX],[BP+03H]
两存储器单元之间不能直接操作
9.DAAAL
BCD数调整指令是隐含寻址。
10.MOVDL,1000
源操作数超出范围
10.ADDDS,BX
段寄存器不能参加运算
11.OUTDX,BL
I/O输出指令中,源操作数必须为AL
12.MOVAL,CX
13.DIV10
乘除法运算指令中,源操作数不能为立即数
14.MOVAX,[DX]
DX不能间接寻址
15.MOVAL,[BX]
寄存器间接寻址
16.MOV01H,DX
立即数不能做目的操作数
17.MOV[BX],0
类型不明确
18.POPCL
堆栈必须按字操作
10.RCRAL,2
1.MOVDS,1000H
当DS作目的操作数时,源操作数不能为立即数
2.MOVCS,AX
CS不能作目的操作数
3.ADDAL,CX
4.XCHGDS,AX
段寄存器不能参加交换
5.MOVAX,[BX]
6.MOVAL,[CX]
CX不能间接寻址
7.MOVDX,01H
立即数寻址
8.MOV[BX],[BP+03H]
两存储器单元之间不能直接传送数据
9.PUSHCL
10.SHLDX,10
1.MOVBX,VAR1[SI];
正确。
SRC的寻址方式为寄存器相对寻址。
2.MOVAL,[DX];
错误。
DX不能作间接寄存器用。
或能作间接寻址用的寄存器只有:
BX、SI、DI。
3.MOVBP,AL;
错误。
类型不一致。
4.MOVCS,AX;
CS不能作DST。
5.MOVDS,0100H;
当DS、ES、SS作DST时,SRC不能为立即数寻址。
6.JMPL1;
正确。
断内直接寻址
7.JMPVAR1[SI];
断间间接寻址
8.JGL1;
段内相对寻址
三、写出完成下列要求的变量定义语句
1.在变量var1中保存4个字变量:
4512H,4512,-1,100/3
Var1DW4512H,4512,-1,100/3
2.在变量var2中保存字符串:
’XiDian’,’2010’,’LUCK’
Var2DB’XiDian’,’2010’,’LUCK’
3.在缓冲区buf1中留出100个字节的存储空间;
Buf1DB100DUP(?
)
4.在缓冲区buf2保存5个字节的55H,再保存10个字节的240,并将这一过程重复7次;
Buf2DB7DUP(5DUP(55H),10DUP(240))
5.在变量var3中保存缓冲区buf1的长度;
Var3DBLENGTHBuf1
四.程序分析题
1.分析下列程序完成的功能
MOVAL,06H
SHLAL,01H
MOVBL,AL
MOVCL,3
SHLAL,CL
ADDAL,BL
实现6
18运算,并将结果放在AL
2.若有以下变量定义,请说明下面的程序执行后,AX的内容是什么?
TABLEDW40,50,20,30
ENTRYDW3
┊
MOVBX,OFFSETTABLE
ADDBX,ENTRY
MOVAX,[BX]
(AX)=1400H
MOVDL,0DH
MOVAH,02H
INT21H
MOVDL,0AH
光标回车、换行
2.假设程序中的数据定义如下:
DATA1DW?
DATA2DB32DUP(?
)
DATA3DD?
DLENGTHEQU$-DATA1
问DLENGTH的值为多少?
它表示什么意义?
LENGTH的值为38,表示DATA1、DATA2、DATA3变量所占的存储器单元的总的字节数
1.分析以下程序段完成的功能
SUB1PROCNEAR
PUSHAX
PUSHBX
PUSHCX
PUSHDX
MOVCX,00FFH
AGAIN:
NOP
LOOPAGAIN
POPDX
POPCX
POPBX
POPAX
RET
SUB1ENDP
延时
2.分析下列程序段,说明完成了什么操作?
程序执行前后,HEXNUM字节单元的内容是什么?
ASCNUMDB41H
HEXNUMDB?
MOVAH,ASCNUM
CMPAH,39H
JBENEXT
SUBAH,7
NEXT:
SUBAH,30H
MOVHEXNUM,AH
HLT
将ASCNUM单元中的字符转换为数字,并将结果放到HEXNUM单元。
执行前(HEXNUM)为随机数,
执行后(HEXNUM)为0AH
1、分析下列程序段执行后,求BX寄存器的内容
MOVCL,3
MOVBX,0B7H
ROLBX,1
RORBX,CL
BX:
0C02DH
2、请在下面的程序段中空行处填写相应语句使其完成:
在Buf为首地址的字节单元的Count个无符号数中找出最大数并送入MAX单元的功能。
BUFDB5,6,7,58H,62,45H,127,…
COUNTEQU$-BUF
MAXDB?
…
MOVBX,OFFSETBUF
MOVCX,COUNT-1
MOVAL,[BX]
LOP1:
INCBX
CMPAL,[BX]
JAENEXT
DECCX
JNZLOP1
MOVMAX,AL
五、硬件应用题
在工业控制领域,经常需要检测某些开关量的状态。
例如,在某一系统中,有8个开关K7-K0,要求不断检测它们的通断状态,并通过发光二极管LED7-LED0显示出来。
开关断开(高电平),相应LED点亮;
开关闭合(低电平),相应LED熄灭。
①请在PC/XT系统总线上,利用8255A以及其它器件(自选)设计出实现题目功能的接口电路(设分配给8255A的端口地址为300H-303H)。
②编写包括8255A初始化在内的实现题目功能的检测程序。
实现题目功能的检测程序如下:
MOVDX,383H
MOVAL,10000010B;
82H
OUTDX,AL
MOVDX,381H
INAL,DX
MOVDX,380H
在8088系统总线上扩充设计8K字节的SRAM电路,SRAM芯片选用Intel6264,起始地址从04000H开始。
①计算此RAM区的最高地址是多少?
②画出此SRAM电路与系统总线的连接图。
计算此RAM区的最高地址是多少?
因为Intel6264存储容量为8K×
8(字节),所以设计此存储电路共需1片6264芯片。
因此最高地址为:
04000H+02000H-1=05FFFH
1、74LS245数据双向缓冲器的引脚及功能图如图1所示。
请画出8086CPU工作在最小方式下的系统数据总线D15~D0形成电路。
根据AD15~AD0、
和
信号功能以及74LS245芯片引脚功能,设计的系统数据总线D15~D0形成电路如下图所示。
1、硬件和软件2、11011010B,10100110B
1、8个,AX、BX、EX、DX、SP、BP、SI、DI
4、20,1MB5、4F15DH
6、BX、BP、SI、DI
7、1234H8、标识符、操作符、操作数、注释
9、010、4
(a)74LS245逻辑及引脚(b)74LS245功能
图174LS245数据双向缓冲器的引脚及功能图
解:
2、在8086CPU工作在最小方式组成的微机系统中,扩充设计16kB的SRAM电路,SRAM芯片选用Intel6264,内存地址范围为70000H~73FFFH,试画出此SRAM电路与8086系统总线的连接图。
因为Intel6264的片容量为8kB,因此由2片Intel6264构成连续的RAM存储区域的总容量为2×
8kB=16kB。
其中1片Intel6264作为偶地址存储器,另1片Intel6264作为奇地址存储器。
8086最小方式系统与存储器读写操作有关的信号线有:
地址总线
,数据总线:
,控制信号:
。
此存储电路与8086系统总线的连接如下图所示。
3、在PC/XT系统总线上扩充设计一个数据输出端口,分配给该端口的地址为280H,输出端口芯片用74LS374,输出设备为8个LED发光二极管。
(1)画出此输出端口与PC/XT系统总线以及与LED发光二极管的连接图。
(2)编写使8个LED发光二极管每间隔1秒亮一个的功能段程序(假设有1秒延时子程序DELAY1S可调用)。
(1)74LS374的功能和74LS373相同,都是8位数据输出锁存器,不同之处是使能信号的有效形式,74LS374的使能信号CP为上升沿有效。
LED发光二极管导通时流过的电流应
20mA,否则会损坏器件。
设计的此输出端口与PC/XT系统总线以及与LED发光二极管的连接图如下图所示。
(2)编写使8个LED发光二极管每间隔1秒亮一个的功能段程序如下:
MOVDX,280H
MOVAL,01H
LOP:
OUTDX,AL;
使Q0对应的LED发光二极管亮
CALLDELAY1S;
调用1秒延时子程序
ROLAL,1
JMPLOP
4、在8088最大方式系统中,有一片8255A,其端口地址为8000H~8003H,编写完整的8086汇编语言程序,实现使端口A的低4位产生如图3所示的信号(各个信号的节拍不必严格相等)。
为使8255A的端口A产生如图10.16所示的信号,可以将端口A设定成方式0输出,端口B和C与本题无关,均设定为方式0输出。
端口A低4位的波形为分频形式,因此,可以通过计数方式实现。
完整的8086汇编语言程序如下:
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDX,26H;
设定8255A的工作方式
MOVAL,10000000B
OUTDX,AL
MOVDX,20H;
产生指定的信号
XORAL,AL
REP1:
MOVCX,4
REP2:
INCAL
LOOPREP2
XORAL,AL
JMPREP1
MOVAH,4CH;
返回DOS操作系统
CODEENDS
ENDSTART