微机原理与接口技术习题解答.docx
- 文档编号:25367858
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:71
- 大小:172.51KB
微机原理与接口技术习题解答.docx
《微机原理与接口技术习题解答.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术习题解答.docx(71页珍藏版)》请在冰豆网上搜索。
微机原理与接口技术习题解答
《微机原理与接口技术》习题解答
习题2
2.18086CPU具有20条地址线,可直接寻址1MB容量的内存空间,在访问I/O端口时,使用地址线16条,最多可寻址64K个I/O端口。
2.28086CPU的内部结构有何特点?
由哪两部分组成?
它们的主要功能是什么?
【解答】8086微处理器是典型的16位微处理器,HMOS工艺制造,集成了2.9万只晶体管,使用单一的+5V电源,有16根数据线和20根地址线;通过其16位的内部数据通路与设置指令预取队列的流水线结构结合起来而获得较高的性能。
8086微处理器内部安排了两个逻辑单元,即执行部件EU和总线接口部件BIU。
EU主要负责指令译码、执行和数据运算,包括计算有效地址;BIU主要完成计算物理地址、从内存中取指令、实现指令规定的读/写存储器或外部设备等信息传输类操作。
2.38086CPU中的指令队列的作用是预取指令,其长度是6字节。
2.48086CPU内部寄存器有哪几种?
各自的特点和作用是什么?
【解答】CPU有14个内部寄存器,可分为3大类:
通用寄存器、控制寄存器和段寄存器。
通用寄存器是一种面向寄存器的体系结构,操作数可以直接存放在这些寄存器中,既可减少访问存储器的次数,又可缩短程序的长度,提高了数据处理速度,占用内存空间少。
控制寄存器包括指令指针寄存器IP和标志寄存器FLAG:
IP用来指示当前指令在代码段的偏移位置;FLAG用于反映指令执行结果或控制指令执行的形式。
为了实现寻址1MB存储器空间,8086CPU将1MB的存储空间分成若干个逻辑段进行管理,4个16位的段寄存器来存放每一个逻辑段的段起始地址。
2.58086的标志寄存器分为6个状态标志位和3个控制标志位,它们各自的含义和作用是什么?
【解答】标志寄存器各标志位的含义和作用如下表:
表2-1标志寄存器FLAG中标志位的含义和作用
标志位
含义
作用
CF
进位标志
CF=1,指令执行结果在最高位上产生一个进位或借位;CF=0,则无进位或借位产生
PF
奇偶标志
PF=1,结果低8位含偶数个1;PF=0,表示结果低8位含奇数个1
AF
辅助进位标志
AF=1,运算结果的低4位产生了一个进位或借位;AF=0,则无此进位或借位
ZF
零标志
ZF=1,运算结果为零;ZF=0,则运算结果不为零
SF
符号标志
SF=1,运算结果为负数;SF=0,则结果为正数
OF
溢出标志
OF=1,带符号数在进行运算时产生了溢出;OF=0,则无溢出
TF
陷阱标志
TF=1,8086CPU处于单步工作方式;TF=0,8086CPU正常执行程序
IF
中断允许标志
IF=1,允许CPU接受外部从INTR引脚上发来的可屏蔽中断请求信号;IF=0,则禁止接受可屏蔽中断请求
DF
方向标志
DF=1,字符串操作指令按递减的顺序对字符串进行处理;DF=0,字符串操作指令按递增的顺序进行处理
2.6已知堆栈段寄存器(SS)=2400H,堆栈指针(SP)=1200H,计算该堆栈栈顶的实际地址,并画出堆栈示意图。
【解答】(SS)=2400H,(SP)=1200H;PA=(SS)×10H+(SP)=2400H×10H+1200H=25200H。
2.78086的存储器采用奇偶存储体结构,数据在内存中的存放规定是低字节存放在低地址中,高字节存放在高地址中,以低地址为字的地址,规则字是指低字节地址为偶地址的字,非规则字是指低字节的地址为奇地址的字。
2.8解释逻辑地址、偏移地址、有效地址、物理地址的含义,8086存储器的物理地址是如何形成的?
怎样进行计算?
【解答】逻辑地址:
表示为段地址:
偏移地址,书写程序时用到,一个存储单元可对应出多个逻辑地址;
偏移地址:
是某一存储单元距离所在逻辑段的开始地址的字节个数。
有效地址:
是指令中计算出的要访问的存储单元的偏移地址。
物理地址:
是CPU访问存储器时用到的20位地址,是存储单元的唯一的编号。
物理地址计算公式:
物理地址=段地址×10H+有效地址(或偏移地址)
2.98086系统中的存储器分为几个逻辑段?
各段之间的关系如何?
每个段寄存器的作用是什么?
【解答】8086CPU将1MB的存储空间分成逻辑段来进行管理:
每个逻辑段最小为16B。
所以最多可分成64K个段;每个逻辑段最大为64KB,最少可分成16个逻辑段。
各段的起始位置由程序员指出,可以彼此分离,也可以首尾相连、重叠或部分重叠。
4个16位的段寄存器用来存放每一个逻辑段的段起始地址:
CS中为代码段的起始地址;DS中为数据段的起始地址;SS中为堆栈段的起始地址;ES中为附加段的起始地址。
2.10I/O端口有哪两种编址方式,各自的优缺点是什么?
【解答】I/O端口有两种编址方式:
统一编址和独立编址。
统一编址方式是将I/O端口与内存单元统一起来进行编号,即包括在1MB的存储器空间中,看作存储器单元,每个端口占用一个存储单元地址。
该方式主要优点是不需要专门的I/O指令,对I/O端口操作的指令类型多;缺点是端口要占用部分存储器的地址空间,不容易区分是访问存储器还是外部设备。
独立编址的端口单独构成I/O地址空间,不占用存储器地址。
优点是地址空间独立,控制电路和地址译码电路简单,采用专用的I/O指令,使得端口操作的指令在形式上与存储器操作指令有明显区别,程序容易阅读;缺点是指令类别少,一般只能进行传送操作。
2.118086的最大工作模式和最小各种模式的主要区别是什么?
如何进行控制?
【解答】两种模式的主要区别是:
8086工作在最小模式时,系统只有一个微处理器,且系统所有的控制信号全部由8086CPU提供;在最大模式时,系统由多个微处理器/协处理器构成的多机系统,控制信号通过总线控制器产生,且系统资源由各处理器共享。
8086CPU工作在哪种模式下通过CPU的第33条引脚MN/
来控制:
MN/
=1,系统就处于最小工作模式;MN/
=0,系统处于最大工作模式。
2.12在内存有一个由20个字节组成的数据区,其起始地址为1100H:
0020H。
计算出该数据区在内存的首末单元的实际地址。
【解答】逻辑地址1100H:
0020H对应的物理地址为PA=1100H×10H+0020H=11020H,即该数据区在内存中的首单元的物理地址为11020H;因为存储空间中每个字节单元对应一个地址,所以20个字节对应20个地址,则该数据区在内存中的末单元的物理地址PA=11020H+20D=11020H+14H=11034H。
2.13已知两个16位的字数据268AH和357EH,它们在8086存储器中的地址分别为00120H和00124H,试画出它们的存储示意图。
【解答】存储示意图参见图2-2。
8AH
00120H
50H
00510H
26H
00121H
65H
00511H
00122H
6EH
00512H
00123H
74H
00513H
7EH
00124H
69H
00514H
35H
00125H
75H
00515H
6DH
00516H
图2-2数据的存储示意
图2-3字符的存储示意
2.14找出字符串“Pentium”的ASCII码,将它们依次存入从00510H开始的字节单元中,画出它们存放的内存单元示意图。
【解答】存储示意图参见图2-3。
2.15在内存中保存有一个程序段,其位置为(CS)=33A0H,(IP)=0130H,当计算机执行该程序段指令时,分析实际启动的物理地址是多少。
【解答】逻辑地址(CS):
(IP)=33A0H:
0130H,计算出对应物理地址PA=(CS)×10H+(IP)=33A0H×10H+0130H=33B30H
2.16什么是总线周期?
8086CPU的读/写总线周期各包含多少个时钟周期?
什么情况下需要插入等待周期TW,什么情况下会出现空闲状态TI?
【解答】8086CPU经外部总线对存储器或I/O端口进行一次信息的输入或输出过程所需要的时间,称为总线周期。
8086CPU的读/写总线周期通常包括T1、T2、T3、T4状态4个时钟周期。
在高速的CPU与慢速的存储器或I/O接口交换信息时,为了防止丢失数据,会由存储器或外设通过READY信号线,在总线周期的T3和T4之间插入1个或多个必要的等待状态TW,用来进行必要的时间补偿。
在BIU不执行任何操作的两个总线周期之间会出现空闲状态TI。
2.1780286CPU的内部结构与8086相比,有哪些增加的部件?
其主要特点和功能是什么?
【解答】80286CPU的可编程寄存器在8086寄存器结构的基础上,增加了一个16位的机器状态字寄存器MSW。
而且为适应80286性能的提高,在8086的状态标志寄存器F中,又增加使用了3个位,即IOPL—I/O特权层标志(占用12、13位)和NT—嵌套任务标志(占用14位)。
NT标志位表示当前执行的任务嵌套于另一任务中,IOPL用来定义当前任务的I/O特权层。
2.18简述Pentium微处理器的内部组成结构和主要部件的功能,Pentium微处理器的主要特点有哪些?
【解答】Pentium微处理器的主要部件包括总线接口部件、指令高速缓存器、数据高速缓存器、指令预取部件与转移目标缓冲器、寄存器组、指令译码部件、具有两条流水线的整数处理部件(U流水线和V流水线)、以及浮点处理部件FPU等。
各主要部件的功能分析如下:
(1)整数处理部件:
U流水线和V流水线都可以执行整数指令,U流水线还可执行浮点指令。
因此能够在每个时钟周期内同时执行两条整数指令。
(2)浮点处理部件FPU:
高度流水线化的浮点操作与整数流水线集成在一起。
微处理器内部流水线进一步分割成若干个小而快的级段。
(3)独立的数据和指令高速缓存Cache:
两个独立的8KB指令和8KB数据Cache可扩展到12KB,允许同时存取,内部数据传输效率更高。
两个Cache采用双路相关联的结构,每路128个高速缓存行,每行可存放32B。
数据高速缓存两端口对应U、V流水线。
(4)指令集与指令预取:
指令预取缓冲器顺序地处理指令地址,直到它取到一条分支指令,此时存放有关分支历史信息的分支目标缓冲器BTB将对预取到的分支指令是否导致分支进行预测。
(5)分支预测:
指令预取处理中增加了分支预测逻辑,提供分支目标缓冲器来预测程序转移。
Pentium微处理器的主要特点如下:
(1)采用超标量双流水线结构;
(2)采用两个彼此独立的高速缓冲存储器;
(3)采用全新设计的增强型浮点运算器(FPU);
(4)可工作在实地址方式、保护方式、虚拟8086方式以及SMM系统管理方式;
(5)常用指令进行了固化及微代码改进,一些常用的指令用硬件实现。
2.19什么是虚拟存储技术?
该技术的主要优点有那些?
【解答】虚拟存储技术是一种存储管理技术,采用硬件、软件相结合的方法,由系统自动分批将程序调入内存,不断地用新的程序段来覆盖内存中暂时不用的老程序段。
虚拟存储技术的主要优点有:
(1)扩大了程序可访问的存储空间;
(2)便于实施多任务的保护和隔离;(3)便于操作系统实现内存管理。
2.20简要分析Pentium系列微处理器的4种工作方式具备的特点。
【解答】
(1)实地址方式:
系统加电或者复位时进入实地址方式,使用16位80X86的寻址方式、存储器管理和中断管理;使用20位地址寻址1MB空间,可用32位寄存器执行大多数指令。
(2)保护方式:
支持多任务运行环境,对任务进行隔离和保护,进行虚拟存储管理能够充分发挥Pentium微处理器的优良性能。
(3)虚拟8086方式:
是保护模式下某个任务的工作方式,允许运行多个8086程序,使用8086的寻址方式,每个任务使用1MB的内存空间。
(4)系统管理方式:
主要用于电源管理,可使处理器和外设部件进入“休眠”,在有键盘按下或鼠标移动时“唤醒”系统使之继续工作;利用SMM可以实现软件关机。
习题3
3.1简要分析8086的指令格式由哪些部分组成,什么是操作码?
什么是操作数?
寻址和寻址方式的含义是什么?
8086指令系统有哪些寻址方式?
【解答】8086的指令格式由操作码和操作数字段组成。
操作码:
要完成的操作。
操作数:
参与操作的对象。
寻址:
寻找操作数或操作数地址的过程。
寻址方式:
指令中给出的找到操作数或操作数地址采用的方式。
8086指令系统的寻址方式主要有立即数寻址、寄存器寻址、存储器寻址和I/O端口寻址。
其中,存储器寻址可进一步分为直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址;I/O端口指令IN和OUT使用的端口寻址方式有直接寻址和间接寻址。
3.2设(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据变量VAL的偏移地址为0050H,请指出下列指令的源操作数字段是什么寻址方式?
它的物理地址是多少?
(1)MOVAX,21H
(2)MOVAX,BX(3)MOVAX,[1000H]
(4)MOVAX,VAL(5)MOVAX,[BX](6)MOVAX,ES:
[BX]
(7)MOVAX,[BP](8)MOVAX,[SI](9)MOVAX,[BX+10]
(10)MOVAX,VAL[BX](11)MOVAX,[BX][SI](12)MOVAX,VAL[BX][SI]
【解答】
(1)MOVAX,21H
立即寻址,源操作数直接放在指令中
(2)MOVAX,BX
寄存器寻址,源操作数放在寄存器BX中
(3)MOVAX,[1000H]
直接寻址,EA=1000H,PA=(DS)×10H+EA=2000H×10H+1000H=21000H
(4)MOVAX,VAL
直接寻址,EA=[VAL]=0050H,PA=(DS)×10H+EA=2000H×10H+0050H=20050H
(5)MOVAX,[BX]
寄存器间接寻址,EA=(BX)=0100H,PA=(DS)×10H+EA=2000H×10H+0100H=20100H
(6)MOVAX,ES:
[BX]
寄存器间接寻址,EA=(BX)=0100H,PA=(ES)×10H+EA=2100H×10H+0100H=21100H
(7)MOVAX,[BP]
寄存器间接寻址,EA=(BP)=0010H,PA=(SS)×10H+EA=1500H×10H+0010H=15010H
(8)MOVAX,[SI]
寄存器间接寻址,EA=(SI)=00A0H,PA=(DS)×10H+EA=2000H×10H+00A0H=200A0H
(9)MOVAX,[BX+10]
相对寄存器寻址,EA=(BX)+10D=0100H+000AH=010AH,PA=(DS)×10H+EA=2000H×10H+010AH=2010AH
(10)MOVAX,VAL[BX]
相对寄存器寻址,EA=(BX)+[VAL]=0100H+0050H=0150H,PA=(DS)×10H+EA=2000H×10H+0150H=20150H
(11)MOVAX,[BX][SI]
基址变址寻址,EA=(BX)+(SI)=0100H+00A0H=01A0H,PA=(DS)×10H+EA=2000H×10H+01A0H=201A0H
(12)MOVAX,VAL[BX][SI]
相对基址变址寻址,EA=(BX)+(SI)+[VAL]=0100H+00A0H+0050H=01F0H,PA=(DS)×10H+EA=2000H×10H+01F0H=201F0H
3.3给定寄存器及存储单元的内容为:
(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=32H,(20101)=51H,(20102)=26H,(20103)=83H,(21200)=1AH,(21201)=B6H,(21202)=D1H,(21203)=29H。
试说明下列各条指令执行完后,AX寄存器中保存的内容是什么。
(1)MOVAX,1200H
(2)MOVAX,BX(3)MOVAX,[1200H]
(4)MOVAX,[BX](5)MOVAX,1100H[BX](6)MOVAX,[BX][SI]
【解答】
(1)MOVAX,1200H;执行后,(AX)=1200H
(2)MOVAX,BX;执行后,(AX)=(BX)=0100H
(3)MOVAX,[1200H]
直接寻址,EA=[VAL]=1200H,PA=(DS)×10H+EA=2000H×10H+1200H=21200H,执行后,(AX)=B61AH
(4)MOVAX,[BX]
EA=(BX)=0100H,PA=(DS)×10H+EA=2000H×10H+0100H=20100H,执行后,(AX)=5132H
(5)MOVAX,1100H[BX]
EA=(BX)+1100H=0100H+1100H=1200H,PA=(DS)×10H+EA=2000H×10H+1200H=21200H,执行后,(AX)=B61AH
(6)MOVAX,[BX][SI]
EA=(BX)+(SI)=0100H+0002H=0102H,PA=(DS)×10H+EA=2000H×10H+0102H=20102H,执行后,(AX)=29D1H
3.4分析下列指令的正误,对于错误的指令要说明原因并加以改正。
(1)MOVAH,BX
(2)MOV[BX],[SI]
(3)MOVAX,[SI][DI](4)MOVMYDAT[BX][SI],ES:
AX
(5)MOVBYTEPTR[BX],1000(6)MOVBX,OFFSETMAYDAT[SI]
(7)MOVCS,AX(8)MOVDS,BP
【解答】
(1)MOVAH,BX
错误,寄存器类型不匹配,可改为MOVAX,BX
(2)MOV[BX],[SI]
错误,两个操作数不能都为存储单元,可改为MOVBX,[SI]或MOV[BX],SI
(3)MOVAX,[SI][DI]
错误,寻址方式中只能出现一个变址寄存器,可改为MOVAX,[BX][DI]。
(4)MOVMYDAT[BX][SI],ES:
AX
错误,AX签不能有段跨越前缀,去掉ES:
,改为MOVMYDAT[BX][SI],AX
(5)MOVBYTEPTR[BX],1000
错误,1000超出字节空间存储范围
(6)MOVBX,OFFSETMAYDAT[SI];正确
(7)MOVCS,AX
错误,MOV指令CS不能做目的操作数,可改为MOVDS,AX
(8)MOVDS,BP;正确
注:
本题错误改正部分有的答案并不唯一,可参考原题题意改成合法形式。
3.5设VAR1、VAR2为字变量,LAB为标号,分析下列指令的错误之处并加以改正。
(1)ADDVAR1,VAR2
(2)MOVAL,VAR2
(3)SUBAL,VAR1(4)JMPLAB[SI]
(5)JNZVAR1(6)JMPNEARLAB
【解答】
(1)ADDVAR1,VAR2
错误,两个操作数不能都为存储单元,可改为MOVBX,VAR2
ADDVAR1,BX
(2)MOVAL,VAR2
错误,数据类型不匹配,可改为MOVAX,VAR2
(3)SUBAL,VAR1
错误,数据类型不匹配,可改为SUBAX,VAR1
(4)JMPLAB[SI]
错误,寄存器相对寻址形式中不能用标号做位移量,可改为JMPVAR1[SI]
(5)JNZVAR1
错误,条件跳转指令只能进行段内短跳转,所以后面只能跟短标号。
可改为JNZLAB
(6)JMPNEARLAB
错误,缺少运算符PTR,可改为JMPNEARPTRLAB
注:
本题错误改正部分有的答案并不唯一,可参考原题题意改成合法形式。
3.6写出能够完成下列操作的8086CPU指令。
(1)把4629H传送给AX寄存器;
(2)从AX寄存器中减去3218H;
(3)把BUF的偏移地址送入BX中。
【解答】
(1)MOVAX,4629H
(2)SUBAX,3218H
(3)LEABX,BUF
3.7根据以下要求写出相应的汇编语言指令。
(1)把BX和DX寄存器的内容相加,结果存入DX寄存器中;
(2)用BX和SI的基址变址寻址方式,把存储器中的一个字节与AL内容相加,并保存在AL寄存器中;
(3)用寄存器BX和位移量21B5H的变址寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储器单元中;
(4)用位移量2158H的直接寻址方式把存储器中的一个字与数3160H相加,并把结果送回该存储器中;
(5)把数25H与(AL)相加,结果送回寄存器AL中。
【解答】
(1)ADDDX,BX
(2)ADDAL,[BX][SI]
(3)ADD21B5H[BX],CX
(4)ADDWORDPTR[2158H],3160H
(5)ADDAL,25H
3.8写出将首地址为BLOCK的字数组的第6个字送到CX寄存器的指令序列,要求分别使用以下几种寻址方式:
(1)以BX的寄存器间接寻址
(2)以BX的寄存器相对寻址
(3)以BX、SI的基址变址寻址
【解答】
(1)LEABX,BLOCK+10
MOVCX,[BX]
(2)LEABX,BLOCK
MOVCX,10[BX]
(3)LEABX,BLOCK
MOVSI,10
MOVCX,[BX][SI]
3.9执行下列指令后,AX寄存器中的内容是什么?
TABLEDB10,20,30,40,50
ENTRYDW3
……
MOVBX,OFFSETTABLE
ADDBX,ENTRY
MOVAX,[BX]
AX=
【解答】AX=3228H
3.10下面是将内存一字节数据高4位和低4位互换并放回原位置的程序,找出错误并改正。
DATASEGMENT
DD1DB23H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEASI,OFFSETDD1
MOVAL,[SI]
MOVCL,4
RCRAL,CL
MOV[SI],AL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
【解答】程序第8行错误:
LEASI,OFF
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 习题 解答