微型计算机技术与接口部分复习题参考答案.docx

上传人:b****6 文档编号:8212858 上传时间:2023-01-29 格式:DOCX 页数:36 大小:140.89KB
下载 相关 举报
微型计算机技术与接口部分复习题参考答案.docx_第1页
第1页 / 共36页
微型计算机技术与接口部分复习题参考答案.docx_第2页
第2页 / 共36页
微型计算机技术与接口部分复习题参考答案.docx_第3页
第3页 / 共36页
微型计算机技术与接口部分复习题参考答案.docx_第4页
第4页 / 共36页
微型计算机技术与接口部分复习题参考答案.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

微型计算机技术与接口部分复习题参考答案.docx

《微型计算机技术与接口部分复习题参考答案.docx》由会员分享,可在线阅读,更多相关《微型计算机技术与接口部分复习题参考答案.docx(36页珍藏版)》请在冰豆网上搜索。

微型计算机技术与接口部分复习题参考答案.docx

微型计算机技术与接口部分复习题参考答案

《微型计算机技术及接口》部分习题参考答案

习题1部分答案

1.3假设四种CPU主存地址分别为16根、20根、24根以及32根,试问每种CPU可寻址内存多少字节?

解:

64K字节,1M字节,16M字节,4G字节

1.4设字长为16位,将下列十进制数转换成二进制数,十六进制数以及BCD数。

①65②129③257④513

解:

 ①0000000001000001B,0041H,(0000 0000 0110 0101)BCD

②0000000010000001B,0081H,(0000 0001 0010 1001)BCD

③0000000100000001B,0101H,(0000 0010 0101 0111)BCD

④0000001000000001B,0201H,(0000 0101 0001 0011)BCD

1.5设字长为8位,写出x、y的原码、反码和补码,并且用补码计算x+y,问是否有溢出?

①x=-78y=35②x=-64y=-66

解:

①[X]原=11001110,[X]反=10110001,[X]补=10110010

[Y]原=00100011,[Y]反=00100011,[Y]补=00100011

因为:

[X]补=10110010  [Y]补=00100011

那末:

[X]补+[Y]补=11010101=[X+Y]补  X+Y=-00101011 没有溢出

②[X]原=11000000,[X]反=10111111,[X]补=11000000

[Y]原=11000010,[Y]反=10111101,[Y]补=10111110

因为:

[X]补=11000000  [Y]补=10111110

 那末:

[X]补+[Y]补=101111110,有溢出

1.6试用8位二进制写出以下数、字母以及控制命令的ASCⅡ码,还要写成奇校验、偶校验、标记校验及空格校验的ASCⅡ码。

①B②8③CR④NUL

解:

解答如下表中。

序 号

ASCⅡ码

奇校验码

偶校验码

标记校验码

空格校验码

42H

11000010B

01000010B

11000010B

01000010B

38H

00111000B

10111000B

10111000B

00111000B

0DH

00001101B

10001101B

10001101B

00001101B

00H

10000000B

00000000B

10000000B

00000000B

1.7设两个BCD数X=10001001,Y=01110101,试用列竖式的方法计算X+Y。

10001001

+01110101

11111110

+ 0110

100000100

+110

101100100

结果为:

(101100100)BCD

解:

1.8若规格化32位浮点数N的二进制存储格式为41360000H,求其对应的十进制数值。

解:

N=41360000H=01000001001101100000000000000000B

S=0

E=10000010

M=01101100000000000000000

N=(-1)S×(1.M)×2E-127

 =1.011011×210000010-01111111

=1.011011×2011

=1011.011

习题2习题解答

2.1哪两部分组成?

它们的主要功能各是什么?

解:

8086CPU由总线接口部件BIU(BusInterfaceUnit)和执行部件EU(ExecutionUnit)两大部分组成。

总线接口部件的主要功能是形成物理地址、预取指令、指令队列排队、读/写操作数和总线控制。

执行部件的主要功能是进行指令译码并执行指令。

2.28086CPU中有哪些寄存器?

各有什么用途?

标志寄存器FLAGS有哪些标志位?

在什么情况下置位?

解:

8086CPU中的寄存器如教材图2-2所示:

        

其用途可参考教材。

标志寄存器(FLAGS)用于反映指令执行结果的状态,常用作后续条件转移指令的转移控制条件。

标志寄存器为16位,实际使用了其中的9位,所用各位的含义如教材中图2-3所示。

2.3什么是逻辑地址?

什么是物理地址?

如何将逻辑地址转换为物理地址?

解:

逻辑地址是指在程序和指令中使用的一种地址,它包括两部分:

段基地址和偏移地址。

段基地址说明每段在主存中的起始位置,它来自于段寄存器(CS、DS、ES、SS)。

偏移地址说明主存单元距离段起始位置的偏移量。

它是一个16位的偏移地址,根据指令的不同,它可以来自于8086CPU中不同的16位寄存器IP、SP、BP、SI、DI、BX等。

物理地址是指CPU对存储器进行访问时实际寻址所使用的地址,物理地址是由段寄存器与偏移地址共同确定的。

在实际工作时,从段寄存器中取出段基址,将其左移4位,再与16位偏移地址相加,就得到了物理地址,此地址在CPU总线接口部件BIU的20位地址加法器中形成。

物理地址的计算方法为:

物理地址=段基地址×16+偏移地址。

2.4设X=35H,Y=76H,进行X+Y和X-Y运算后,标志寄存器FLAGS的状态标志位各是什么?

解:

X+Y=0ABH,各标志位分别为:

OF=1,SF=1,ZF=0,AF=0,PF=0,CF=0

  X-Y=0BFH, 各标志位分别为:

OF=0,SF=1,ZF=0,AF=1,PF=0,CF=1

2.58086有哪4个逻辑段?

各种逻辑段分别是什么用途?

解:

在8086的程序设计中,一个程序可以有代码段CS、数据段SS、堆栈段SS和附加段ES。

代码段CS用于存放程序;

数据段SS和附加段ES用于存放数据;

堆栈段SS用于存放数据(包括暂存数据和保护现场的数据)。

在形成物理地址时,CS、DS、ES和SS四个段寄存器的作用如下:

当取指令时,CPU以CS寄存器的值作段基址,再加上IP中的16位偏移地址,得到指令的物理地址;当进行堆栈操作时,段基地址CPU以SS为堆栈段的基地址,偏移地址由SP或BP来指定,当访问存储器的数据段时,数据段寄存器DS或附加段寄存器ES,再加上16位偏移地址,得到操作数的物理地址。

2.6请将如下逻辑地址用物理地址表示:

(1)FFFFH:

0

(2)45H:

18H(3)2000H:

4600H(4)B821H:

3456H

解:

用PA表示物理地址,PA=段基地址×16+偏移地址

(1)PA=FFFFH×16+0000H=FFFF0H

(2)PA=45H×16+18H=468H

(3)PA=2000H×16+4600H=24600H

(4)PA=B821H×16+3456H=BB666H

2.7若8086CPU工作于最小模式,试指出当CPU将AH的内容送到物理地址为91001H的存储单元时,以下哪些信号应为低电平:

M/

/S7、DT/

若CPU完成的是将物理地址91000H单元的内容读入AL中时,则上述哪些信号应为低电平。

解:

当CPU将AH的内容送到物理地址为91001H的存储单元时,CPU完成的是写存储器操作,且完成的是访问存储器的奇地址,因此,

=0,

/S7=0;

若CPU完成的是将物理地址91000H单元的内容读AL中时,CPU完成的是读存储器操作,且完成的是访问存储器的偶地址,因此,

=0,DT/

=0。

2.8什么是引脚的分时复用?

请说出8086CPU有哪些引脚是分时复用引脚?

如何分时复用?

解:

8086的数据线和地址线是利用复用的,所以常把8086的总线称为多路总线,即某一时刻总线上出现的是地址,另一时刻,总线上出现的是数据。

正是这种引脚的分时使用方法才能使8086用40条引脚实现20位地址、16位数据及众多的控制信号和状态信号的传输。

8086CPU的分时复用的引脚有:

地址/数据复用引脚是:

AD15~AD0,在总线周期的T1状态,传送地址信息,在其它状态则传送数据信息;

地址/状态复用引脚是:

A19/S6~A16/S3,这些引脚在总线周期的T1状态输出地址的高4位,在总线的T2、T3、TW和T4状态时,用来输出状态信息。

2.9试说明8086CPU工作在最大和最小模式下系统基本配置的差异。

解:

8086CPU可以工作在两种工作模式,即最小工作模式和最大工作模式。

最小工作模式用于单机系统,系统中所有总线控制信号全部由8086直接提供,因此系统中的总线控制电路可减到最少;最大工作模式用于多处理机系统,8086作为主处理器,其它的处理器为协处理器,协助主处理器工作。

在最大工作模式下,系统所需要的控制信号均由总线控制器8288提供。

8086具体工作在最大模式还是最小模式,完全由硬件连接决定。

当将CPU的第33号引脚MN/

接+5V时,8086工作在最小模式,当MN/

接地时,8086工作在最大模式。

2.10分析8086CPU两个中断输入引脚的区别,以及各自的使用场合。

解:

是中断响应信号,输出,三态,低电平有效。

该信号是CPU响应中断请求后,向中断源发出的中断响应信号,用以通知中断控制器,以便由中断控制器提供中断类型号。

在每个中断响应周期,CPU在

引脚上发出两个连续的负脉冲。

NMI是非屏蔽中断请求信号,输入,正跳变有效。

这类中断不受中断允许标志IF的影响,也不能用软件进行屏蔽。

当NMI引脚收到一个正沿触发信号时,CPU就会在结束当前指令后引起中断,执行中断类型号2的非屏蔽中断处理程序。

 

习题3部分答案

3.1Pentium在实地址模式和V86模式下,可访问存储器空间的大小分别为多少字节?

解:

①在实模式下,可以访问1MB存储器。

②在V86模式下,禁止分页情况下,只能访问1MB存储器。

        允许分页情况下,可以访问4GB存储器。

3.2Pentium工作在只分段不分页、只分页不分段以及既分段又分页三种情况下,分别可访问存储空间的大小为多少字节?

解:

①只分段不分页,可以访问虚拟存储空间64TB

②只分页不分段,可以访问虚拟存储空间4GB

③分页分段,可以访问虚拟存储空间64TB

3.3下面哪些指令不能在实模式下运行?

为什么?

(1)MOVAL,DS:

[ESI]

(2)ADDAX,FS:

[EDI]

(3)MOVAL,DS:

[SI]

(4)ADCEAX,FS:

[DI]

解:

(1)、

(2)两条指令不能在实模式下运行,因为在实模式下不允许ESI,EDI作偏移地址。

3.4在虚拟8086模式下,在从虚地址转换到物理地址的过程中,可用到几个页目录项和几个页表项?

解:

可用到第1个页目录项,272个页表项。

3.5在段选择符中,TI=0和TI=1,分别在LDT还是GDT中访问描述符?

解:

TI=0访问GDT,TI=1访问LDT。

3.6当前的段描述符存放在何处?

解:

当前的段描述符存放在微处理器的Cache中。

3.12存储器特权级保护的分析。

设当前代码段的特权级CPL,段选择符请求的特权级RPL以及数据段描述符的特权级DPL如表3-5所示,回答4种组合中每一种组合能否将段选择符装入到数据段寄存器中,通过填写下表,回答哪几种能行?

哪几种不行?

并将理由填入表中。

表3-5CPL、RPL、DPL之间的关系

当前代码段CPL

段选择符请求级RPL

数据段描述符DPL

访问与否

原因

0

1

1

1

1

1

3

1

1

2

2

1

解:

第1行、第2行可以将段选择符装入到数据段寄存器中。

第3行、第4行则不行,原因分别是:

DPL<CPL

DPL<CPL、RPL

3.14Pentium超标量流水线共分几段,其中整数段有几段?

解:

共分为8段,其中整数段分为5段。

3.15下列各组指令中,哪些会产生数据相关?

数据相关的类型是什么?

(1)MOVAX,BX

ADDCX,SI

(2)MOVAX,DX

ADDBX,AX

(3)MOVCX,BX

MOVBX,DI

(4)DIVAX,SI

SUBAX,DI

解:

(1)不会产生数据相关。

    

(2)会产生数据相关,写后读(RAW)数据相关。

    (3)会产生数据相关,读后写(WAR)数据相关。

    (4)会产生数据相关,写后写(WAW)数据相关。

习题4部分答案

4.1分别指出下列指令中源操作数和目的操作数的寻址方式

(1)MOVEAX,12345678H

(2)MOV[ESI],AX

(3)MOV2[EDI],BX

(4)MOV2[BX+SI],DX

(5)MOVAX,[10]

(6)MOVEAX,2[ESI*4]

(7)MOVEAX,2[EBX*8][EDI]

(8)MOVEAX,[ESI][EBP+0FFFF0H]

(9)MOVEAX,2[EDI*8][EBP+80]

解:

指令

目的操作数的寻址方式

源操作数的寻址方式

(1)MOVEAX,12345678H

寄存器寻址

立即寻址

(2)MOV[ESI],AX

寄存器间接寻址

寄存器寻址

(3)MOV2[EDI],BX

变址寻址

寄存器寻址

(4)MOV2[BX+SI],DX

基址变址寻址

寄存器寻址

(5)MOVAX,[10]

寄存器寻址

直接寻址

(6)MOVEAX,2[ESI*4]

寄存器寻址

带有比例因子的变址寻址

(7)MOVEAX,2[EBX*8][EDI]

寄存器寻址

带有比例因子的基址变址寻址

(8)MOVEAX,[ESI][EBP+0FFFF0H]

寄存器寻址

带有位移量的基址变址寻址

(9)MOVEAX,2[EDI*8][EBP+80]

寄存器寻址

带有位移量和比例因子的基址变址寻址

4.2指出下列指令的错误原因

(1)INC[ESI]

(2)MOVAX,BL

(3)MOV2,EAX

(4)MOVAX,[DX]

(5)MOVAX,[BX+BP]

(6)MOVAX,[SI+DI]

(7)MOVAH,300

(8)MOV[ESI],[EDI]

(9)PUSHAL

(10)POPDH

(11)MOVCS,AX

(12)MOVSS,AX

(13)SHLAX,3

解:

指令

错误原因

(1)INC[ESI]

目的操作数[ESI]类型不明确

(2)MOVAX,BL

源操作数和目的操作数类型不一致

(3)MOV2,EAX

常数不能作目的操作数

(4)MOVAX,[DX]

DX不能作地址寄存器

(5)MOVAX,[BX+BP]

源操作数寻址方式错,两个寄存器都是基址寄存器

(6)MOVAX,[SI+DI]

源操作数寻址方式错,两个寄存器都是变址寄存器

(7)MOVAH,300

300超出AH允许范围

(8)MOV[ESI],[EDI]

源操作数和目的操作数不能同时为内存单元地址

(9)PUSHAL

入栈的数据必须是一个16或32位数据

(10)POPDH

出栈的数据是一个16或32位数据,DH是8位寄存器

(11)MOVCS,AX

CS值不能由程序员编程该变

(12)MOVSS,AX

SS值不能由程序员编程该变

(13)SHLAX,3

移位次数大于1,应先将移位次数送CL

4.3比较下列两条指令,指出它们的区别

MOVEAX,[ESI]

MOV[ESI],EAX

解:

这两条指令的区别是,指令“MOVEAX,[ESI]”是将内存单元DS:

[ESI]中的内容读到CPU中的寄存器EAX;而指令“MOV[ESI],EAX”是将CPU中寄存器EAX中的内容写入内存单元DS:

[ESI]。

4.4比较下列两条指令,指出它们的区别

MOVAX,[SI]

LEAAX,[SI]

解:

这两条指令的区别是,指令“MOVAX,[SI]”是将内存单元DS:

[SI]中的内容读到CPU中的寄存器AX;而指令“LEAAX,[SI]”是将内存单元DS:

[SI]的偏移地址送到AX。

4.5假定(EAX)=12345678H,不用计算,写出下面每条指令执行后(EAX)=?

①TESTEAX,1

②XOREAX,EAX

③SUBEAX,EAX

④CMPEAX,87654321H

解:

①(EAX)=12345678H②0③0④(AX)=12345678H

4.6假定(AX)=1234H,(BX)=5678H指出下列指令中

①哪些指令执行后,源操作数和目的操作数都不发生变化?

②哪些指令执行后,源操作数和目的操作数都发生变化?

③哪些指令执行后,源操作数不发生变化而目的操作数发生变化?

指令:

①TESTAX,1234

②ANDAX,BX

③SUBAX,1234H

④CMPAX,1234H

⑤XCHGAX,BX

解:

①指令“TESTAX,1234”和指令“CMPAX,1234H”执行后,源操作数和目的操作数都不发生变化。

变量

EA

BUF→

31H

0

32H

1

33H

2

34H

3

BCD→

4

5

6

7

②指令“XCHGAX,BX”执行后,源操作数和目的操作数都发生变化。

③指令“ANDAX,BX”和“SUBAX,1234H”执行后,源操作数不发生变化而目的操作数发生变化。

4.74.7阅读下面的程序,回答问题

1.【程序一】

DATASEGMENT

BUFDB'1234'

N=$-BUF

BCDDBNDUP(?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEASI,BUF

MOVCX,N

LEADI,BCD+N-1

LOOP1:

MOVAL,[SI]

SUBAL,30H

MOV[DI],AL

INCSI

DECDI

DECCX

JNELOOP1

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

【问题一】画出内存分配图。

【问题二】说明程序功能,程序执行后,从BCD开始的N个字节单元中的内容是什么?

【问题三】找出一条指令代替指令“SUBAL,30H”,使程序功能不变。

【问题四】如果将代码段中的指令LEADI,BCD+N-1改成LEADI,BCD;DECDI改成INCDI,其它指令不变,程序执行后,从BCD开始的N个字节单元中的内容是什么?

【问题五】取消数据段的BCD存储区,将处理后的数据放回原处,应如何修改程序?

2.【程序二】

.MODELSMALL

.386

.STACK

.DATA

STRINGDB'AssembleLanguageispowerful'

N=$-STRING

NEWSTRDBNDUP(0)

.CODE

.STARTUP

MOVCX,N

LEASI,STRING

LEADI,NEWSTR

.REPEAT

MOVAL,[SI]

.IF(AL>='a')&&(AL<='z')

SUBAL,32

.ENDIF

MOV[DI],AL

INCSI

INCDI

.UNTILCXZ

.EXIT

END

【问题】写出程序功能,程序执行后,从NEWSTR开始的N个字节中的内容是什么?

解:

1.【程序一】

【问题一】内存分配图

变量

EA

BUF→

31H

0

32H

1

33H

2

34H

3

BCD→

4

4

3

5

2

6

1

7

【问题二】

程序功能是将从BUF开始的连续4个字符'1234'转变为4个对应的数值,按逆序存放到以变量BCD为首地址的存储单元中。

程序执行后,从BCD开始的N个字节单元中的内容是4321。

【问题三】

用指令“ANDAL,0FH”代替指令“SUBAL,30H”,程序功能不变。

变量

EA

BUF→

31H

0

32H

1

33H

2

34H

3

BCD→

1

4

2

5

3

6

4

7

【问题四】如果将代码段中的指令LEADI,BCD+N-1改成LEADI,BCD;DECDI改成INCDI,其它指令不变,程序执行后,从BCD开始的N个字节单元中的内容是1234。

【问题五】取消数据段的BCD存储区,将经处理后的数据放回原处,修改程序如下

DATASEGMENT

BUFDB'1234'

N=$-BUF

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEASI,BUF

MOVCX,N

LOOP1:

MOVAL,[SI]

SUBAL,30H

MOV[SI],AL

INCSI

DECCX

JNELOOP1

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

2.【程序二】

程序功能是将从STRING开始的N个字节中的字符串变成大写存放到从NEWSTR开始的N个字节中。

程序执行后,从NEWSTR开始的N个字节中的内容是"ASSEMBLELANGUAGEISPOWERFUL"。

4.8阅读下面的程序,填空。

1.【程序一说明】用减法实现除法。

X是被除数,Y是除数,处理结束后商存放在RESULT,余数存放在XYMOD。

【程序一】

被除数

除数

7

2

0

5

2

1

3

2

2

余数→

1

2

3

←商

图4-15用减法实现除法示意图

.MODELSMALL

.386

.STACK

.DATA

XDW7

YDW2

.DATA?

RESULTDW?

XYMODDW?

.CODE

.STARTUP

MOVAX,X

MOVBX,Y

MOVCX,0

.WHILE_____①____

SUBAX,BX

_____②_____

.ENDW

MOVRESULT,CX

MOVXYMOD,AX

.EXIT

END

2.【程序二说明】从BUF开始的11个单元中存放着11个整数,找出这11个数中正数并且是偶数的个数存入R中。

【程序二】

DATASEGMENT

BUFDB–2,5,-3,6,100,0,-20,-9,8,-110,21

N=①

RDW

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1