微机原理复习.docx

上传人:b****4 文档编号:5205927 上传时间:2022-12-13 格式:DOCX 页数:18 大小:53.96KB
下载 相关 举报
微机原理复习.docx_第1页
第1页 / 共18页
微机原理复习.docx_第2页
第2页 / 共18页
微机原理复习.docx_第3页
第3页 / 共18页
微机原理复习.docx_第4页
第4页 / 共18页
微机原理复习.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

微机原理复习.docx

《微机原理复习.docx》由会员分享,可在线阅读,更多相关《微机原理复习.docx(18页珍藏版)》请在冰豆网上搜索。

微机原理复习.docx

微机原理复习

计算机应用基础A

第1章基础知识

1.1计算机中常用的计数制有哪些?

解:

二进制、八进制、十进制(BCD)、十六进制。

1.2什么是机器码?

什么是真值?

解:

把符号数值化的数码称为机器数或机器码,原来的数值叫做机器数的真值。

1.3完成下列数制的转换。

微型计算机的基本工作原理

汇编语言程序设计

微型计算机接口技术

建立微型计算机系统的整体概念,形成微机系统软硬件开发的初步能力。

解:

(1)166,A6H

(2)0.75

(3)11111101.01B,FD.4H

(4)5B.AH,(10010001.011000100101)BCD

1.48位和16位二进制数的原码、补码和反码可表示的数的范围分别是多少?

解:

原码(-127~+127)、(-32767~+32767)

补码(-128~+127)、(-32768~+32767)

反码(-127~+127)、(-32767~+32767)

1.5写出下列真值对应的原码和补码的形式。

(1)X=-1110011B

(2)X=-71D

(3)X=+1001001B

解:

(1)原码:

11110011补码:

10001101

(2)原码:

11000111补码:

10111001

(3)原码:

01001001补码:

01001001

1.6写出符号数10110101B的反码和补码。

解:

11001010,11001011

1.7已知X和Y的真值,求[X+Y]的补码。

(1)X=-1110111BY=+1011010B

(2)X=56DY=-21D

解:

(1)11100011

(2)00100011

1.8已知X=-1101001B,Y=-1010110B,用补码求X-Y的值。

解:

11101101

1.9请写出下列字符的ASCII码。

4A3-!

解:

34H,41H,33H,3DH,21H

1.10若给字符4和9的ASCII码加奇校验,应是多少?

解:

34H,B9H

1.11上题中若加偶校验,结果如何?

解:

B4H,39H

1.12计算下列表达式。

(1)(4EH+10110101B)x(0.0101)BCD=()D

(2)4EH-(24/08H+’B’/2)=()B

解:

(1)129.5D

(2)101010B

12、在冯.诺依曼计算机中,指令和数据以的形式表示,计算机按照、的方式进行工作。

2、微机系统的硬件部分包括哪五个基本组成部分?

3、8086CPU最小模式基本总线读操作包括几个时钟周期,当存储器或I/O速度较慢时,则需要插入什么周期?

4、对于8086CPU,物理地址是由段基址和偏移地址两部分构成,若某存储单元的段基址为1000H,偏移地址为2345H,则该存储单元的物理地址为H。

5、8086系统,若SS=1000H,SP=1000H,执行PUSHBX指令之后,SS=H,SP=H。

第2章微型计算机基础

2.6简述CPU执行程序的过程。

解:

当程序的第一条指令所在的地址送入程序计数器后,CPU就进入取指阶段准备取第一条指令。

在取指阶段,CPU从内存中读出指令,并把指令送至指令寄存器IR暂存。

在取指阶段结束后,机器就进入执行阶段,这时,由指令译码器对指令译码,再经控制器发出相应的控制信号,控制各部件执行指令所规定的具体操作。

当一条指令执行完毕以后,就转入了下一条指令的取指阶段。

以上步骤周而复始地循环,直到遇到停机指令。

2.7说明8086的EU和BIU的主要功能。

在执行程序过程中他们是如何相互配合工作的?

解:

执行单元EU负责执行指令。

EU在工作时不断地从指令队列取出指令代码,对其译码后产生完成指令所需要的控制信息。

数据在ALU中进行运算,运算结果的特征保留在标志寄存器FLAGS中。

总线接口单元BIU负责CPU与存储器、I/O接口之间的信息传送。

BIU取出的指令被送入指令队列供EU执行,BIU取出的数据被送入相关寄存器中以便做进一步的处理。

当EU从指令队列中取走指令,指令队列

出现空字节时,BIU就自动执行一次取指令周期,从内存中取出后续的指令代码放入队列中。

当EU需要数据时,BIU根据EU给出的地址,从指定的内存单元或外设中取出数据供EU使用。

当运算结束时,BIU将运算结果送入指定的内存单元或寄存器。

当指令队列空时,EU就等待,直到有指令为止。

若BIU正在取指令,EU发出访问总线的请求,则必须等BIU取指令完毕后,该请求才能得到响应。

一般情况下,程序顺序执行,当遇到跳转指令时,BIU就使指令

队列复位,从新地址取出指令,并立即传送EU去执行。

指令队列的存在使8086/8088的EU和BIU并行工作,从而减少了CPU为取指令而等待的时间,提高了CPU的利用率,加快了整机的运行速度。

另外也降低了对存储器存取速度的要求。

2.98086与8088CPU的主要区别有哪些?

解:

主要区别有以下几点:

①8086的外部数据总线有16位,而8088的外部数据总线只有8位。

②8086指令队列深度为6个字节,而8088的指令队列深度为4个字节.

③因为8086的外部数据总线有16位,故8086每个总线周期可以存取两个字节.而8088的外部数据总线因为只有8位,所以每个总线周期只能存取1个字节.

④个别引脚信号的含义稍有不同.

2.108088CPU工作在最小模式下:

(1)当CPU访问存储器时,要利用哪些信号?

(2)当CPU进行I/O操作时,要利用哪些信号?

(3)当HOLD有效并得到响应时,CPU的哪些信号置高阻?

解:

(1)要利用信号线包括WR#、RD#、IO/M#、ALE以及AD0~AD7、A8~A19。

(2)同

(1)。

(3)所有三态输出的地址信号、数据信号和控制信号均置为高阻态。

2.11总线周期中,什么情况下要插入TW等待周期?

插入TW周期的个数,取决于什么因素?

解:

在每个总线周期的T3的开始处若READY为低电平,则CPU在T3后插入一个等待周期TW。

在TW的开始时刻,CPU还要检查READY状态,若仍为低电平,则再插入一个TW。

此过程一直进行到某个TW开始时,READY已经变为高电平,这时下一个时钟周期才转入T4。

可以看出,插入TW周期的个数取决于READY电平维持的时间。

2.13在8086/8088CPU中,标志寄存器包含哪些标志位?

各位为0(为1)分别表示什么含义?

解:

(略),见书第49页。

2.148086/8088CPU中,有哪些通用寄存器和专用寄存器?

说明它们的作用。

解:

通用寄存器包含以下8个寄存器:

AX、BX、CX和DX寄存器一般用于存放参与运算的数据或运算的结果。

除此之外:

AX:

主要存放算术逻辑运算中的操作数,以及存放I/O操作的数据。

BX:

存放访问内存时的基地址。

CX:

在循环和串操作指令中用作计数器。

DX:

在寄存器间接寻址的I/O指令中存放I/O地址。

在做双字长乘除法运算时,DX与AX合起来存放一个双字长数。

SP:

存放栈顶偏移地址。

BP:

存放访问内存时的基地址。

SP和BP也可以存放数据,但它们的默认段寄存器都是SS。

SI:

常在变址寻址方式中作为源地址指针。

DI:

常在变址寻址方式中作为目标地址指针。

专用寄存器包括4个段寄存器和两个控制寄存器:

CS:

代码段寄存器,用于存放代码段的段基地址。

DS:

数据段寄存器,用于存放数据段的段基地址。

SS:

堆栈段寄存器,用于存放堆栈段的段基地址。

ES:

附加段寄存器,用于存放附加段的段基地址。

IP:

指令指针寄存器,用于存放下一条要执行指令的偏移地址。

FLAGS:

标志寄存器,用于存放运算结果的特征。

2.158086/8088系统中,存储器为什么要分段?

一个段最大为多少个字节?

最小为多少个字节?

解:

分段的主要目的是便于存储器的管理,使得可以用16位寄存器来寻址20位的内存空间。

一个段最大为64KB,最小为16B。

2.16在8086/8088CPU中,物理地址和逻辑地址是指什么?

已知逻辑地址为1F00:

38A0H,如何计算出其对应的物理地址?

解:

物理地址时CPU存取存储器所用的地址。

逻辑地址是段和偏移地址形式的地址,即汇编语言程序中使用的存储器地址。

若已知逻辑地址为1F00:

38A0H,则对应的物理地址=1F00Hx16+38A0H=228A0H。

2.17已知存储器物理地址为78A00H,计算出它所对应的逻辑地址。

此结果惟一吗?

解:

物理地址可以对应于不同的逻辑地址。

78A00H对应的逻辑地址可以是7000H:

8A00H,7800H:

0A00H,78A0H:

0000H等。

结果不是惟一的。

2.18设当前数据段位于存储器的A8000H~B7FFFH,DS段寄存器的内容应是什么?

解:

因为A8000H到B7FFFH之间的地址范围大小为64KB,未超出一个段的最大范围。

故要访问此地址范围的数据,数据段的起始地址(即段首地址)应为A8000H,则DS段寄存器为A800H。

2.19若CS=8000H,则当前代码段可寻址的存储空间的范围是多少?

解(CS)=8000H时,当前代码段可寻址的存储空间范围为80000H~8FFFFH。

2.208086/8088CPU在最小模式下构成计算机系统至少应包括哪几个基本部分(器件)?

解:

其至少应包括:

8088CPU、8284时钟发生器、8282锁存器(3片)和8286双向总线驱动器。

第3章8088/8086指令系统

3.1什么叫寻址方式?

8086/8088CPU共有哪几种寻址方式?

解:

寻址方式主要是指获得操作数所在地址的方法.8086/8088CPU具有:

立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、寄存器相对寻址、基址一变址寻址、基址一变址-相对寻址以及隐含寻址等8种寻址方式。

3.2设(DS)=6000H,(ES)=2000H,(SS)=1500H,(Si)=00A0H,(BX)=0800H,(BP)=1200H,数据变量VAR为0050H.请分别指出下列各条指令源操作数的寻址方式?

它的物理地址是多少?

(1)MOVAX,BX

(2)MOVDL,80H

(3)MOVAX,VAR(4)MOVAX,VAR[BX][SI]

(5)MOVAL,'B'(6)MOVDI,ES:

[BX]

(7)MOVDX,[BP](8)MOVBX,20H[BX]

解:

(1)寄存器寻址。

因源操作数是寄存器,故寄存器BX就是操作数的地址.

(2)立即寻址。

操作数80H存放于代码段中指令码MOV之后。

(3)直接寻址。

(4)基址一变址一相对寻址.

操作数的物理地址=(DS)×16+(SI)+(BX)+VAR

=60000H+00A0H+0800H+0050H=608F0H

(5)立即寻址

(6)寄存器间接寻址.

操作数的物理地址=(ES)×16+(BX)

=20000H+0800H=20800H

(7)寄存器间接寻址。

操作数的物理地址=(SS)×16+(BP)

=15000H+1200H=16200H

(8)寄存器相对寻址.

操作数的物理地址=(DS)×16+(BX)+20H

=60000H+0800H+20H=60820H

3.3假设(DS)=212AH,(CS)=0200H,(IP)=1200H,(BX)=0500H,位移量DATA=40H,(217A0H)=2300H,(217E0H)=0400H,(217E2H)=9000H

 

26、已知AX=3A7BH,进位标志CF=1,则语句SARAX,1执行后AX和CF的值分别为?

28已知AX=1025H,BL=03H,则语句MULBL执行后AX的值为?

8、指令CALLFARPTRSubProg执行时将会向堆栈依次压入什么?

10、已知DS=1000H,ES=2000H,SI=0300H,内存10310H开始的两个单元中存放3A4BH,内存20310H开始的两个单元中存放4C5DH,则语句LEABX,[SI+10H]执行后,BX的值为()。

A.3A4BHB.4C5DH

C.0310HD.3D5BH

30、设当前数据段位于存储器的A8000H-B7FFFH,DS段寄存器的内容应是什么?

试确定下列转移指令的转移地址.

(1)JMP2300H

(2)JMPWORDPTR[BX]

(3)JMPDWORDPTR[BX+DATA]

解:

转移指令分为段内转移和段间转移,根据其寻址方式的不同,又有段内的直接转移和间接转移,以及段间的直接转移和间接转移地址。

对直接转移,其转移地址为当前指令的偏移地址(即IP的内容)加上位移量或由指令中直接得出;对间接转移,转移地址等于指令中寄存器的内容或由寄存器内容所指向的存储单元的内容。

(1)段内直接转移。

转移的物理地址=(CS)×l6+2300H

=02000H+2300H=04300H

(2)段内间接转移。

转移的物理地址=(CS)×16+[BX]

=(CS)×l6+(217A0H)

=02000H+2300H=04300H

(3)段间间接转移。

转移的物理地址=[BX+DATA]

=(217E2H)×l6+(217E0H)

=90000H+0400H=90400H

3.4试说明指令MOVBX,5[BX]与指令LEABX,5[BX]的区别。

解:

前者是数据传送类指令,表示将数据段中以(BX+5)为偏移地址的16位数据送寄存器BX.

后者是取偏移地址指令,执行的结果是(BX)=(BX)+5,即操作数的偏移地址为(BX)+5。

3.5设堆栈指针SP的初值为2300H,(AX)=50ABH,(BX)=1234H。

执行指令PUSHAX后,(SP)=?

,再执行指令PUSHBX及POPAX之后,(SP)=?

(AX)=?

(BX)=?

解:

堆栈指针SP总是指向栈顶,每执行一次PUSH指令SP-2,执行一次POP指令SP+2.所以,执行PUSHAX指令后,(SP)=22FEH;再执行PUSHBX及POPAX后,(SP)=22FEH,(AX)=(BX)=1234H

3.6指出下列指令的错误:

(1)MOVAH,CX

(2)MOV33H,AL

(3)MOVAX,[SI][DI](4)MOV[BX],[SI]

(5)ADDBYTEPTR[BP],256(6)MOVDATA[SI],ES:

AX

(7)JMPBYTEPTR[BX](8)OUT230H,AX

(9)MOVDS,BP(10)MUL39H

解:

(1)指令错。

两操作数字长不相等

(2)指令错。

MOV指令不允许目标操作数为立即数.

(3)指令错。

在间接寻址中不允许两个间址寄存器同时为变址寄存器。

(4)指令错。

MUV指令不允许两个操作数同时为存储器操作数。

(5)指令错。

ADD指令要求两操作数等字长。

(6)指令错。

源操作数形式错,寄存器操作数不加段重设符。

(7)指令错。

转移地址的字长至少应是16位的。

(8)指令错。

对输人输出指令,当端口地址超出8位二进制数的表达范围(即寻址的端口超出256个)时,必须采用间接寻址。

(9)指令正确。

(10)指令错。

MUL指令不允许操作数为立即数。

3.7已知(AL)=7BH,(BL)=38H,试问执行指令ADDAL,BL后,AF、CF、OF、PF、SF和ZF的值各为多少?

解:

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

3.9试判断下列程序执行后,BX中的内容.

MOVCL,3

MOVBX,0B7H

ROLBX,1

RORBX,CL

解:

该程序段是首先将BX内容不带进位循环左移1位,再循环右移3位。

即相当于将原BX内容不带进位循环右移2位,故结果为:

(BX)=0C02DH

.

3.11分别指出以下两个程序段的功能:

(1)

(2)

MOVCX,l0CLD

LEASI,FIRSTLEADI,[1200H]

LEADI,SECONDMOVCX,0FOOH

STDXORAX,AX

REPMOVSBREPSTOSW

解:

(1)该段程序的功能是:

将数据段中FIRST为最高地址的10个字节数据按减地址方向传送到附加段SECOND为最高地址的向前10个单元中。

(2)将附加段中偏移地址为1200H单元开始的0FOOH个字单元清0。

3.12执行以下两条指令后,标志寄存器FLAGS的六个状态位各为什么状态?

MOVAX,84A0H

ADDAX,9460H

解:

执行ADD指令后,6个状态标志位的状态分别为:

在两个16位数进行加法运算时,对CF、ZF、SF和OF会产生影响,但对PF和AF标志位,只有其低8位的运算影响它们的状态。

各标志位的状态分别为:

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

10、已知AL=10001010B,BL=11000110B,

执行指令ADDAL,BL后,ZF=?

,OF=?

7、设AX=0000000010101111B,BX=0000000011011011B。

MOVCL,8

RORBX,CL

RORAX,CL

MOVBH,AH

MOVAH,0

执行该段程序后,AX=?

,BX=?

,CF=?

,CL=?

第4章汇编语言程序设计

4.1请分别用DB、DW、DD伪指令写出在DATA开始的连续8个单元中依次存放数据11H、22H、33H、44H、55H、66H、77H、88H的数据定义语句.

解:

DB,DW,DD伪指令分别表示定义的数据为字节类型、字类型及双字型.其定义形式为:

DATADB11H,22H,33H,44H,55H,66H,77H,88H

DATADW2211H,4433H,6655H,8877H

DATADD44332211H,88776655H

4.3试编写求两个无符号双子长数之和的程序.两数分别在MEM1和MEM2单元中,和放在SUM单元.

解:

DSEGSEGMENT

MEM1DW1122H,3344H

MEM2DW5566H,7788H

SUMDW2DUP(?

DSEGENDS

CSEGSEGMENT

ASSUMECS:

CSEG,DS:

DSEG

START:

MOVAX,DSEG

MOVDS,AX

LEABX,MEM1

LEASI,MEM2

LEADI,SUM

MOVCL,2

CLC

AGAIN:

MOVAX,[BX]

ADCAX,[SI]

MOV[DI],AX

ADDBX,2

ADDSI,2

ADDDI,2

LOOPAGAIN

HLT

CSEGENDS

ENDSTART

4.5试编写程序,将BUFFER中的一个8位二进制数转换为ASCII码,并按位数高低顺序存放在ANSWER开始的内存单元中。

解:

DSEGSEGMENT

BUFFERDB?

ANSWERDB3DUP(?

DSEGENDS

CSEGSEGMENT

ASSUMECS:

CSEG,DS:

DSEG

START:

MOVAX,DSEG

MOVDS,AX

MOVCX,3;最多不超过3为十进制数(255)

LEADI,ANSWER;DI指向结果存放单元

XORAX,AX

MOVAL,BUFFER;取要转换的二进制数

MOVBL,0AH;基数10

AGAIN:

DIVBL;用除10取余的方法转换

ADDAH,30H;十进制数转换成ASCII码

MOV[DI],AH;保存当前的结果

INCDI;指向下一个位保存单元

ANDAL,AL;商为0?

(转换结束?

JZSTO;若结束,退出

MOVAH,0

LOOPAGAIN;否则循环继续

STO:

MOVAX,4C00H

INT21H;返回DOS

CSEGENDS

ENDSTART

4.6假设数据项定义如下:

DATA1DB‘HELLO!

GOODMORNING!

DATA2DB20DUP(?

用串操作指令编写程序段,使其分别完成以下功能:

(1)从左到右将DATA1中的字符串传送到DATA2中。

(2)传送完后,比较DATA1和DATA2中的内容是否相同。

(3)把DATA1中的第3和第4个字节装入AX。

(4)将AX的内容存入DATA2+5开始的字节单元中。

解:

(1)

MOVAX,SEGDATA1

MOVDS,AX

MOVAX,SEGDATA2

MOVES,AX

LEASI,DATA1

LEADI,DATA2

MOVCX,20

CLD

REPMOVSB

(2)

LEASI,DATA1

LEADI,DATA2

MOVCX,20

CLD

REPECMPSB

(3)

LEASI,DATA1

ADDSI,2

LODSW

(4)LEADI,DATA2

ADDDI,5

STOSW

.

.111、分析填空。

MOVAX,01H

MOVBX,02H

PUSHBX

PUSHAX

POPBX;执行后BX=______

POPAX;执行后AX=______

MOVAX,3F5FH;执行后AL=_______

MOVCX,4

RORAL,CL;执行后AL=______

ANDAL,0FH;执行后AL=______

.

MOVBX,OFFSETTABLE

ADDBX,ENTRY

MOVAX,[BX]

解:

(AX)=1E00H

4.8编写程序段,将STRING1中的最后20个字符移到STRING2中(顺序不变)。

解:

首先确定STRING1中字符串的长度,因为字符串的定义要求以‘$’符号结尾,

可通过检测‘$’符确定出字符串的长度,设串长度为COUNT,则程序如下:

LEASI,STRING1

LEADI,STRING2

ADDSI,COUNT-20

MOVCX,20

CLD

REPMOVSB

4.9假设一个48位数存放在DX:

AX:

BX中,试编写程序段,将该48位数乘以2.

解:

可使用移位指令来实现。

首先将BX内容逻辑左移一位,其最高位移入进位位CF,之后AX内容带进位位循环左移,使AX的最高位移入CF,而原CF中的内容(即BX的最高位)移入AX的最低位,最后再将DX内容带进位位循环左移一位,从而实现AX的最低位移入DX的最低位。

SHLBX,1

RCLAX,1

RCLDX,1

134、2、若STR

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

当前位置:首页 > 求职职场 > 简历

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

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