微机原理复习题库.docx
- 文档编号:11272073
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:21
- 大小:84KB
微机原理复习题库.docx
《微机原理复习题库.docx》由会员分享,可在线阅读,更多相关《微机原理复习题库.docx(21页珍藏版)》请在冰豆网上搜索。
微机原理复习题库
第一章计算机基础知识
1、微型计算机由哪些功能部件组成?
微型计算机由微处理器CPU、一定容量的内部存储器(包括ROM、RAM)、输入/输出接口电路组成。
各功能部件之间通过总线有机地连接在一起,其中微处理器是整个微型计算机的核心部件。
2、系统总线按其传送的信息内容与作用不同分为哪几类?
系统总线是用来传送信息的公共导线,它们可以是带状的扁平电缆线,也可以是印刷电路板上的一层极薄的金属连线。
所有的信息都通过总线传送。
通常,根据所传送信息的内容与作用不同可将系统总线分为3类:
数据总线DB(DataBus),
地址总线AB(AddressBus),
控制总线CB(ControlBus)。
3、数制转换:
24=B=______________H。
4、BCD码:
用二进制数对十进制数编码,用4位二进制数表示一位十进制数。
9以内数的BCD码:
和它的二进制形式一样;二位数的BCD码:
和它的二进制形式不一样写出十进制10的BCD码和二进制码。
第二章8086硬件结构
功能结构和内部寄存器
1、编程结构是指从程序员和使用者的角度看到的结构,亦可称为功能结构。
8086CPU从功能上可分为几个部分?
它们的主要功能各是什么?
从功能上来看,8086CPU可分为两部分,即总线接口部件BIU(BusInterfaceUnit)和执行部件EU(ExecutionUnit)。
(1)执行部件(EU):
负责指令的执行。
(2)总线接口部件(BIU):
负责与存储器及I/O接口之间的数据传送操作。
2、8086有4个16位的通用寄存器(AX、BX、CX、DX),这些寄存器在具体使用上有一定的差别。
在串操作时存放串长度,循环结构中存放循环次数的寄存器是______;在端口操作指令中作为端口间接地址(间址)的寄存器是___________。
4、8086内部标志寄存器共有9个标志位,可分成两类:
一类为状态标志,一类为控制标志。
做加法时最高位出现进位或做减法时最高位出现借位则______位置1,反之为0;运算结果为0时,______标志位置1,否则清0;当运算结果的最高位为1,_____标志位置1,否则清0。
5、8086内部标志寄存器的内容,共有9个标志位,可分成两类:
一类为状态标志,一类为控制标志。
中断允许标志位是______,若该位置1,则处理器可以响应可屏蔽中断,否则就不能响应可屏蔽中断;______是方向标志位,若该位置1,则串操作指令的地址修改为自动减量方向,反之,为自动增量方向。
6、AL=76H,BL=0C1H,执行AL+BL后,CF=__,ZF=__,SF=__,OF=__。
7、AL=59H,BL=048H,执行AL+BL后,CF=_,ZF=_,SF=_,OF=__。
8086存储器的组织结构
8、8086/8088有______条地址线,可以寻址______个字节,每个字节所对应的20位的地址称为________地址,地址范围从__________到_________。
9、由于CPU内部的寄存器都是16位的,为了能够提供20位的物理地址,系统中采用了存储器分段的方法。
用段地址和偏移地址表示的单元地址称为_______地址。
逻辑地址0A01H:
1010H对应的物理地址为__________。
10、假设:
DS=1000H,BX=0200H,那么执行指令MOVAL,[BX]时,涉及到哪个内存单元?
解:
1000H*16+0200H=10200H所以,源操作数涉及到10200H单元。
8086重要引脚
11、8086CPU通过RESET引脚上的触发信号来引起8086系统复位和启动。
当信号变成高电平时,8086CPU结束现行操作,各内部寄存器复位成初值,如下表。
请问这时CPU将从哪个地址开始执行指令?
12、为了适应各种使用场合,在设计8088/8086CPU芯片时,就考虑了其应能够使它工作在两种模式下,即最小模式与最大模式。
所谓最小模式,就是系统中只有一个8088/8086微处理器,最大模式是相对于最小模式而言的,最大模式下,系统中至少包含两个微处理器,_______引脚电平的高、低决定了CPU工作在最小模式还是最大模式,当该引脚接+5V时,CPU工作于_______模式下;当该引脚接地时,CPU工作于_____模式下。
13、
(Memory/Input&Output)是存储器/I/O端口选择信号输出引脚,这是CPU区分进行存储器访问还是I/O访问的输出控制信号。
当该引脚输出高电平时,表明CPU要进行I/O端口的读写操作,低位地址总线上出现的是I/O端口的地址;当该引脚输出低电平时,表明CPU要进行存储器的读写操作,地址总线上出现的是访问存储器的地址。
如图所示:
请根据每一行各引脚电平写出对应的读写操作。
具体操作
1
1
0
1
0
1
0
1
0
0
0
1
8086总线周期
14、什么是指令周期?
什么是总线周期?
什么是时钟周期?
它们之间的关系如何?
时钟周期是微机系统工作的最小时间单元,它取决于系统的主频率,系统完成任何操作所需要的时间,均是时钟周期的整数倍。
时钟周期又称为T状态。
基本定时脉冲是由外部振荡器产生的,通过CPU的CLK输入端输入,基本定时脉冲的频率,我们称之为系统的主频率。
我们把CPU通过总线与内存或I/O端口之间,进行一个字节数据交换所进行的操作,称为一次总线操作,相应于某个总线操作的时间即为总线周期一个基本的总线周期由4个T状态组成,我们分别称为
4个状态,在每个T状态下,CPU完成不同的动作。
一条指令从其代码被从内存单元中取出到其所规定的操作执行完毕,所用的时间,称为相应指令的指令周期。
由于指令的类型、功能不同,因此,不同指令所要完成的操作也不同,相应地,其所需的时间也不相同。
也就是说,指令周期的长度因指令的不同而不同。
15、8086/8088CPU读/写总线周期一般包含多少个时钟周期?
什么情况下需要插入Tw周期?
在哪个T状态之后插入?
若存贮器或外设速度较慢,不能及时送上数据的话,则通过READY线通知CPU,CPU在
的前沿(即
结束末的下降沿)检测READY,若发现READY=0,则在
结束后自动插入1个或几个
,并在每个
的前沿处检测READY,等到READY变高后,则自动脱离
进入
。
16:
8086CPU的时钟频率为5MHz,某条指令的指令周期包含3个总线周期,若每个总线周期包含4个时钟周期,求该条指令的处理需要多少ns?
Ø解:
1个时钟周期=1/(5x106)(秒)=200ns
Ø该指令的指令周期=3x4x1/(5x106)(秒)
Ø=2400ns•
8086寻址方式
17、已知:
DS=1000H,BX=0200H,SI=0002H,(10200H)~(10205H)内容分别为:
10H,2AH,3CH,46H,59H,6BH。
求分别执行下列指令后,AX中的内容,并说明寻址方式。
•
(1)MOVAX,0200H;立即寻址
•AX=0200H
•
(2)MOVAX,[0200H];直接寻址
•AX=2A10H
•(3)MOVAX,BX;寄存器寻址
•AX=0200H
•(4)MOVAX,3[BX];寄存器相对寻址
•AX=5946H
•(5)MOVAX,[BX][SI];基址+变址寻址
•AX=463CH
•(6)MOVAX,2[BX+SI];相对的基址+变址寻址
•AX=6B59H
18、设:
DS=1000H,ES=2000H,SS=3500H,SI=00A0H,DI=0024H,BX=0100H,BP=0200H,求下列指令中源操作数的物理地址值。
•MOVAX,[0100H];直接寻址
•MOVAX,[BX];寄存器寻址
•MOVAX,[SI];寄存器寻址
•MOVAX,[BP];寄存器寻址
•MOVAX,ES:
[BX];寄存器寻址
•MOVAX,[BP][DI];基址+变址寻址
•答案:
10100H,10100H,100A0H,35200H,20100H,35224H
19、某程序数据段中存有两个字数据1234H和5A6BH,它们的偏移地址分别为245AH和3245H,若已知DS=5AA0H试画出它们在储存器中的存放情况。
20、假定DS=2000H,ES=2100H,SS=1500H,SI=00A0H,BX=0100H,BP=0010H,数据变量VAL的偏移地址为0050H,请指出下列指令源操作数是什么寻址方式?
其物理地址是多少?
(1)MOVAX,0ABH
(2)MOVAX,[100H]
(3)MOVAX,VAL(4)MOVBX,[SI]
21、设有关寄存器及存储单元的内容如下:
DS=2000H,BX=0100H,AX=1200H,SI=0002H,[20100H]=12H,[20101H]=34H,[20102H]=56H,[20103]=78H,[21200]=2AH,[21201H]=4CH,[21202H]=0B7H,[21203H]=65H。
试说明下列各条指令单独执行后相关寄存器或存储单元的内容。
(1)MOVAX,1800H
(2)MOVAX,BX
(3)MOVBX,[1200H](4)MOVDX,1100[BX]
8086指令
22、分析下列MOV指令的正确性,错误的说明原因。
MOVAX,BL______________________
MOVDS,1000H______________________
MOV[BX],[SI]_______________________
MOVCS,AX_______________________
23、W1W2是内存中的两个变量,以下这段程序的功能是什么?
PUSHW1
PUSHW2
POPW1
POPW2
24、设AX=1122H、BX=3344H、CX=5566H、SS=095BH、SP=40H,下述程序段执行后,AXBXCXDX四个通用寄存器的内容是多少?
PUSHAX
PUSHBX
PUSHCX
POPBX
POPAX
POPDX
25、设SP=0040H,如果用进栈指令存入5个数据,则SP=_______________。
若又用出栈指令取出2个数据,则SP=_____________。
26:
已知AX=0011H,BX=3344H,SP=0200H,执行下列程序段后,SP=?
,AX=?
,BX=?
•PUSHAX;
•PUSHBX;
•POPAX;
•POPBX;
•SP=01FEH,AX=0011H,BX=3344H
•SP=01FCH,AX=0011H,BX=3344H
•SP=01FEH,AX=3344H,BX=3344H
•SP=0200H,AX=3344H,BX=0011H
27、设(BX)=1000H,(DS)=6000H,(61050H)=33H,(61051H)=44H。
比较以下两条指令执行结果,写出指令执行后BX的内容。
LEABX,[BX+50H];将内存单元BUFFER的偏移地址送BX
MOVBX,[BX+50H];
28、利用逻辑运算指令实现下述每一项功能。
1)对AX清零操作ANDAX,0
2)对AL的高四位清零ANDAL,0FH;
3)利用XOR指令对寄存器CX清零XORCX,CX
29、DATA是数据段定义的一个16位无符号数,数值为1234H,分析以下程序段,说明其功能,并说明执行程序后AX的值是多少。
LEASI,DATA
MOVAX,[SI]
SAL AX,1;将AX中的数左移1位,得2X(或SHL)
MOV BX,AX;2X保存在BX中
MOV CL,2;移位次数置入2
SAL AX,CL;2X左移2位,得8X
ADD AX,BX;2X加8X,AL中为10X
HLT
串操作指令
30、将数据段中自段内偏移地址1000H开始的10个字节的数据,搬到自段内偏移地址2000H开始的区域中去。
参考程序1:
利用串操作指令
•MOVSI,1000H;源数据指针
•MOVDI,2000H;目的数据指针
•MOVCX,000AH;循环次数
•CLD;DF=“0”,增址方式
•REPMOVSB;
参考程序2:
MOVSI,1000H;源数据指针
MOVDI,2000H;目的数据指针
MOVCX,000AH;循环次数(传送的字节数)
L1:
MOVAL,[SI];源数据送AL
MOV[DI],AL;AL中数据送目的
INCSI;修改源数据指针
INCDI;修改目的数据指针
DECCX;循环次数-1
JNZL1;循环没有结束,继续执行传送
31、要对附加段中从MESS2开始的5个连续的内存字节单元进行清0操作,程序如下,在横线处填写适当指令。
LEADI,MESS2;装入目的区域偏移地址
MOVAL,00H;为清零操作准备
MOVCX,5;设置区域长度
REP________(STOSB)
伪指令
31、汇编程序中有两类语句-指令性语句和指示性语句,前者被称为符号指令,后者被称为伪指令,请写出一条伪指令,和一条符号指令;说明符号指令和伪指令有什么区别
DATASEGMENT-----段定义伪指令
符号指令:
INCAX
伪指令为编译程序服务,不生成机器码
符号指令为CPU服务,生成机器码
32、在数据段定义的变量DATA1,DATA2,DATA3如下:
DATASEGMENT
DATA1DB01,02
DATA2DW1,2
DATA3DB3DUP(3)
DATAEND
请利用图示说明各变量值在内存中的分布。
第8章汇编程序设计
顺序程序设计
33、以下是对于三个无符号数编写S=86H*34H-21H的程序,仔细阅读并填写空白处的语句。
DATASEGMENT
MUNDB86H,34H,21H
RESULTDW?
DATAENDS
CODE SEGMENT
LEASI,MUN;设置MUN指针
LEADI,RESULT;设置RESULT指针
MOVAL,[SI];将86H送入AL
MOVBL,[SI+1]将34H送入BL
MULBL;将86H与34H相乘
MOV BL,[SI+2];将23送入BL
MOV BH,0
SUB AX,BX
MOV[DI],AX;将最终计算值放到RESULT单元
CODE ENDS
分支结构程序
34:
内存中有一串字节型的带符号数,其始地址为BUF,串长度N=9,要求统计正数和零的个数,并将个数在CRT上显示出来。
以下是部分程序,请编写部分代码,将程序补全(蓝色的代码)。
设置数据段放那需要辨识的9个数据
DATASEGMENT
BUFDB01H,32H,38H,5AH,43H,49H,41H,54H,00H
DATAENDS
CODESEGMENT
ASSUMEDS:
DATA,CS:
CODE
START:
MOVAX,DATA
MOVDS,AX
LEABX,BUF;设置数据指针BX
MOVCX,0009H;查找的数值是9个
MOVDL,0;将来要放正数的个数,先清0
L1:
MOVAL,[BX];拿出第一个数
TESTAL,80H;检查第一个数的D7位。
JNZL2
INCDL
L2:
INCBX;指针指向下一个数。
LOOPL1;取下一个数,并检查这个数的D7位。
ADDDL,30H
MOVAH,02H
INT21H
CODEENDS
ENDSTART
(此题分析详见课件4-4
循环结构程序
35、在内存的数据段中存放了100个8位带符号数,其首地址为TABLE,试统计其中正元素、负元素和零元素的个数,并分别将个数存入PLUS、MINUS和ZERO三个单元中。
参考程序:
START:
XORAL,AL;清0
MOVPLUS,AL
MOVMINUS,AL
MOVZERO,AL
LEASI,TABLE
MOVCX,100
CLD
CHECK:
LODSB
ORAL,AL
JSX1
JZX2
INCPLUS
JMPNEXT
X1:
INCMINUS
JMPNEXT
X2:
INCZERO
NEXT:
LOOPCHECK
HLT
36、设内存BUFF开始的单元中依次存放着30个8位无符号数,求它们的和并放在SUM单元中,试编写程序。
分析:
这是一个求累加的程序。
两种实现程序如下:
(一)
MOVSI,BUFF;设地址指针
MOVCX,30;设计数初值
XORAX,AX;设累加器初值
AGAIN:
ADDAL,[SI]
ADCAH,0
INCSI
DECCX
JNZAGAIN;循环累加
MOVSUM,AX
程序
(二)
MOVSI,BUFF;设地址指针
MOVCX,30;设计数初值
XORAX,AX;设累加器初值(清零)
AGAIN:
ADDAL,[SI]
ADCAH,0;
INCSI
LOOPNZAGAIN;循环累加
MOVSUM,AX
•37、※统计AX寄存器中1的个数,结果放到CL寄存器中。
•MOVCL,0;将来放1的个数
•L1:
ANDAX,AX;AX不变,但影响ZF标志位
•JZSTOP;如果AX=0那么下面的程序就不必要了
•SALAX,1;算术左移,将最低位送入CF
•JNCL2;检验CF的值是1还是0?
•INCCL
•L2:
JMPL1
•STOP:
MOVAH,4CH
•INT21H;退出DOS系统
输入输出与接口技术
38、什么是I/O接口(电路)?
I/O接口能解决的哪些问题?
请列出你了解的三种以上的接口电路。
参考课件6-1相应部分内容。
39、CPU把每个I/O端口都当作一个存储器单元看待,都有他们的地址。
那么8086系统的端口是独立编址还是统一编址?
如果是独立编址,那么CPU在寻址内存和外设时,使用什么信号来区分当前是对内存操作还是对I/O端口操作。
36、CPU与外设间的数据传送方式有哪几种?
分别说出各自的特点。
传送控制方式有查询、中断和DMA3种。
查询方式:
传送前,先查询外设状态,准备好才传送,否则CPU处于等待状态。
中断传送方式:
只有在外设发出中断请求的时候才进行数据交换。
40如图所示,要求:
当K0闭合时,LED灯全部亮;其余状态,LED灯全部不
亮。
(1)写出74LS273和图中三态门的端口地址
(2)写出实现上述要求的程序
分析:
图中K0对应状态端口的D0位;状态端口的地址是80H;LED灯接在输出端口,其口地址是82H。
故控制程序应这样写:
MOVAL,00H
OUT82H,AL;输出全为0,灯全部灭灯
L1:
INAL,80H;检查开关状态
TESTAL,00000001B;检查D0位的数值是0还是1
JNZL1;D0是0,那么继续检查开关状态
MOVAL,0FFH;D0=1则输出FFH,让灯全亮
OUT82H,AL
(详见课件6-1)
并行接口8255
41、如图所示,将8255C端口的8根I/O线接8只发光二极管的正极(八个负极均接地)。
1)8255的A、B、C端口及控制端口的地址分别是多少?
380H~383H。
2)编写使这8只发光二极管依次亮、灭的程序。
设置工作方式,C口设为方式0
MOVDX,383H
MOVAL,80H
OUTDX,AL
向C口传送数据点亮第一盏灯
MOVDX,382H;C端口的端口地址送DX
MOVAL,1;C端口的输出值
AGAIN:
OUTDX,AL
第一盏灯点亮延时
LOOP$;延时
LOOP$
改变C口数据点亮下一盏灯
ROLAL,1;改变C端口的输出值
JMPAGAIN
RET
42、在某工业系统中,要不断检测8个开关K7~K0的通断状态,并随时在LED7~LED0上显示出来(开关合,LED亮;开关断,LED灭)
(课件8-2中例2)
要求:
(1)写出8255初始化控制字
(2写出8255内部四个端口的地址
(3)写出相关的控制程序。
计时计数器8253
43题、课件7-4应用举例1所示电路,.要求OUT0端输出40Hz的方波,
(1)计算计数初值C
(2)确定控制字(3)写出端口地址(4).编写初始化程序
44、课件7-4应用举例3所示电路
某8086系统中包含一片8253芯片,要求完成如下功能:
1)利用通道0完成对外部事件计数功能,计满100次向CPU发出中断请求。
2)利用通道1产生频率为1kHz的方波。
3)利用通道2作标准时钟。
请
(1)计算计数初值C
(2)确定控制字(3)写出端口地址(4).编写初始化程序
45、假设一个8253在某系统中的端口地址40H~43H,如果要将计数器0设置为工作方式3,计数初值为3060H,采用二进制计数法,请写出其初始化程序。
MOVAL,36H;计数器0,方式3,计数值16位,;二进制计数
OUT43H,AL;写入控制寄存器
MOVAL,60H;设置计数值
OUT40H,AL;写低8位至计数器0
MOVAL,30H
OUT40H,AL;写高8位至计数器0
46、定时器0输出作为定时器1的输入,定时器1的输出作为定时器2的输入,定时器2的输出接到一个LED灯上。
1)编程将8253定时器0设定为方式3计数初值为200H,定时器1设定在方式2,计数初值为18H,定时器2设在方式2,计数初值为0AH。
2)若计时器0的CLK0引脚输入153.6KHZ的脉冲信号,那么LED灯闪烁周期是多少?
中断系统
47、对可屏蔽中断请求如何进行屏蔽,通过什么指令实现?
若IF=1,则CPU就响应,此时CPU是处在开中断状态;
若IF=0,则CPU就不响应,此时CPU是处在关中断状态。
而IF标志位的状态,可以用指令STI使其置位,即开中断;也可以用CLI指令来使其复位,即关中断。
48、在每条指令的最后一个时钟周期,CPU检测INTR,若某些条件成立,则CPU响应中断,CPU响应中断请求的条件是什么?
中断响应时,要做哪些工作。
1、条件是:
1)CPU执行完当前指令;2)中断允许触发器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 复习 题库