微机原理复习题1交学生.docx

上传人:b****7 文档编号:11065535 上传时间:2023-02-24 格式:DOCX 页数:24 大小:39.71KB
下载 相关 举报
微机原理复习题1交学生.docx_第1页
第1页 / 共24页
微机原理复习题1交学生.docx_第2页
第2页 / 共24页
微机原理复习题1交学生.docx_第3页
第3页 / 共24页
微机原理复习题1交学生.docx_第4页
第4页 / 共24页
微机原理复习题1交学生.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

微机原理复习题1交学生.docx

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

微机原理复习题1交学生.docx

微机原理复习题1交学生

1微处理器、微型计算机和微型计算机系统三者之间有什么不同?

解:

⏹把CPU(运算器和控制器)用大规模集成电路技术做在一个芯片上,即为微处理器。

⏹微处理器加上一定数量的存储器和外部设备(或外部设备的接口)构成微型计算机。

⏹微型计算机与管理、维护计算机的硬件以及支持应用的软件相结合就形成了微型计算机系统。

2CPU在内部结构上由哪几部分组成?

CPU应该具备哪些主要功能?

解:

CPU主要由起运算器作用的算术逻辑单元、起控制器作用的指令寄存器、指令译码器、可编程逻辑阵列和标志寄存器等一些寄存器组成。

其主要功能是进行算术和逻辑运算以及控制计算机按照程序的规定自动运行。

3微型计算机采用总线结构有什么优点?

解:

采用总线结构,扩大了数据传送的灵活性、减少了连线。

而且总线可以标准化,易于兼容和工业化生产。

4数据总线和地址总线在结构上有什么不同之处?

如果一个系统的数据和地址合用一套总线或者合用部分总线,那么要靠什么来区分地址和数据?

解:

数据总线是双向的(数据既可以读也可以写),而地址总线是单向的。

8086CPU为了减少芯片的引脚数量,采用数据与地址线复用,既作数据总线也作为地址总线。

它们主要靠信号的时序来区分。

通常在读写数据时,总是先输出地址(指定要读或写数据的单元),过一段时间再读或写数据。

58086微处理器的总线接口部件由哪几部分组成?

解:

8086微处理器中的总线接口单元(BIU)负责CPU与存储器之间的信息传送。

具体地说,BIU既负责从内存的指定部分取出指令,送至指令队列中排队(8086的指令队列有6个字节,而8088的指令队列只有4个字节);也负责传送执行指令时所需的操作数。

执行单元(EU)负责执行指令规定的操作。

6段寄存器CS=120OH,指令指针寄存器IP=FFOOH,此时,指令的物理地址为

多少?

解:

指令的物理地址=12000H+FFOOH=21FOOH

 

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

(1)MOVSI,300

(2)MOVCX,DATA[DI]

(3)ADDAX,[BX][SI]

(4)ANDAX,CX

(5)MOV[BP],AX

(6)PUSHF

解:

(l)源操作数为立即寻址,目的操作数为寄存器寻址。

(2)源操作数为变址寄存器加位移量寻址,目的操作数为寄存器寻址。

(3)源操作数为基址加变址寻址,目的操作数为寄存器寻址。

(4)源操作数和目的操作数都为寄存器寻址。

(5)源操作数为寄存器寻址,目的操作数为寄存器间接寻址。

(6)为堆栈操作。

8试述指令MOVAX,2000H和MOVAX,DS:

[2000H]的区别。

解:

前一条指令是立即寻址,即把立即数2000H传送至寄存器AX。

后一条指令是直接寻址,是把数据(DS)段中的地址为200OH单元的内容传送至寄存器AX。

9写出以下指令中内存操作数的所在地址。

(1)MOVAL,[BX+10]

(2)MOV[BP+10],AX

(3)INCBYTEPTR[SI十5]

(4)MOVDL,ES:

[BX+SI]

(5)MOVBX,[BP+DI+2]

解:

(1)数据段BX+10单元。

(2)堆栈段BP+10单元。

(3)数据段SI+5字节单元。

(4)附加段(ES段)BX+SI单元。

(5)堆栈段BP+DI+2单元。

10判断下列指令是否正确。

(1)MOVAL,BX

(2)MOVAL,CL

(3)INC[BX]

(4)MOV5,AL

(5)MOV[BX],[SI]

(6)M0VBL,0F5H

(7)MOVDX,2000H

(8)POPCS

(9)PUSHCS

解:

(l)不正确,AL与BX数据宽度不同。

(2)正确。

(3)不正确,因为不明确是增量字节还是字。

(4)不正确,立即数不能作为目的操作数。

(5)不正确,因为不明确要传送的是字节还是字。

(6)正确。

(7)正确。

(8)不正确,CS不能作为:

pop指令的操作数。

(9)不正确,CS不能作为PUSH指令的操作数。

11设堆钱指针SP的初值为1000H,AX=2000H,BX=3000H,试问:

(1)执行指令PUSHAX后SP的值是多少?

(2)再执行PUSHBX及POPAX后,SP、AX和BX的值各是多少?

解:

(1)SP=0FFEH。

(2)SP=0FFEH;AX=3000H,BX=3000H。

12要想完成把[3000H]送[2000H]中,用指令:

MOM[2000H],[3000H]是否正确?

如果不正确,应该用什么方法实现?

解:

不正确。

正确的是:

MOVAL,[3000H]

MOV[2000H],AL

13假如想从200中减去AL中的内容,用SUB200,AL是否正确?

如果不正确,应该用什么方法?

解:

不正确。

正确的是:

MOVBL,200

SUBBL,AL

14试用两种方法写出从80H端口读入信息的指令。

再用两种方法写出从40H口输出100H的指令。

解:

(1)INAL,80H

(2)MOVDX,80H

INAL,DX

(3)MOVAL,100H

OUT40H,AL

4)MOVAL,100H

MOVDX,40H

OUTDX,AL

15假如:

AL=20H,BL=10H,当执行CMPAL,BL后,问:

(1)AL、BL中的内容是两个无符号数,比较结果如何?

影响哪儿个标志位?

(2)AL、BL中的内容是两个有符号数,结果又如何,影响哪几个标志位?

解:

(l)AL=2OH,BL=1OH,O=0,S=0,Z=0,A=0,P=0,C=0。

(2)因为两个都是符号正数,其结果与(l)相同。

16若要使AL×10,有哪几种方法,试编写出各自的程序段?

解:

(1)使用乘法指令:

MOVBL,10

MULBI,

(2)使用移位指令:

SHLAL,1;AL×2

MOVBL,AL

SHLAL,2;(AL×2)×2×2=AL×8

ADDAL,BL;(AL×8)+(AL×2

(3)使用加法指令:

ADDAL,AL;AL×2

MOVBL,AL

ADDAL,AL;AL×4

ADDAL,AL;AL×8

ADDAL,BL;(AL×8)+(AL×2)

178086汇编语言指令的寻址方式有哪几类?

哪种寻址方式的指令执行速度最快?

解:

寻址方式分为:

立即数寻址方式、寄存器操作数寻址方式和存储器操作数寻址方式。

其中,寄存器操作数寻址方式的指令执行速度最快。

18在直接寻址方式中,一般只指出操作数的偏移地址,那么,段地址如何确定?

如果要用某个段寄存器指出段地址,指令中应该如何表示?

解:

默认数据访问:

操作数在DS段;堆栈操作在SS段;

串操作源操作数在(SI),目的操作数在(DI)段;

用BP作为堆栈指针,则在SS段。

如果要显式地指定段地址,则在操作数中用冒号规定段寄存器。

例如:

MOVAX,ES:

(BX+10H);在ES段

19采用寄存器间接寻址方式时,BX、BP、SI、DI分别针对什么情况来使用?

这4个寄存器组合间接寻址时,地址是怎样计算的?

请举例说明。

解:

在寄存器间接寻址方式下,BX和BP作为间址寄存器使用,而SI、DI作为变址寄存器使用。

除BP间址默认的段为堆栈段,其他的都默认为数据段。

它们都可以单独使用,或加上偏移量或组合使用。

如:

[BX+n]

LBP+n]

[SI+n]

[DI+n]

[BX+SI+n]

[BX+DI+n]

[BP+SI+n]

[BP+DI+n]

20设DS=2100H,SS=5200H,BX=1400H,BP=6200H,说明下面两条指令所进行

的具体操作:

解:

MOVBYTEPTR[BP],200

MOVWORDPTR[BX],2000

解:

前一条指令是把立即数(字节)200,传送至堆栈段(BP的默认段〉偏移量由BP决定的字节单元,物理地址为:

52000H+620OH=58200H

第二条指令是把立即数2000,传送至数据段(BX的默认段),偏移量是BX决定的字单元地址,为:

21000H+1400H=22400H。

21使用堆钱操作指令时要注意什么问题?

传送指令和交换指令在涉及内存操作数时应该分别要注意什么问题?

解:

使用堆栈指令可以把内存单元作为一个操作数(从内存到内存)。

但堆栈

固定在堆栈段且只能由SP指向。

且堆栈操作要修改堆栈指针。

MOV指令不能实现内存单元间的数据传送。

XCHG指令功能是交换,其中有一个操作数必须是寄存器。

22下面这些指令中哪些是正确的?

哪些是错误的?

若是错误的,请说明原因。

(1)XCHGCS,AX

(2)MOV[BX],[1000]

(3)XCHGBX,IP

(4)PUSHCS

(5)POPCS

(6)INBX,DX

(7)MOVBYTE[BX],100O

(8)MOVCS,[1000]

解:

(l)错误,CS不能交换。

(2)错误,MOV指令不能在内存间传送。

(3)错误,IP不能交换。

(4)错误?

CS可以作为PUSH指令的操作数。

(5)错误,CS可以作为POP指令的操作数。

(6)错误,IN指令的目的操作数是累加器。

(7)错误,目的操作数是字节单元。

(8〉错误,CS不能作为MOV指令的目的操作数。

23以下是格雷码的编码表,:

00000

10001

20011

30010

40110

50111

60101

70100

81100

请用换码指令和其他指令设计一个程序段,以实现由格雷码向ASCII码的转换。

解:

MOVBX,TABLE

MOVSI,ASCII_TAB

MOVAL,0

MOVCX,10

TRAN:

XLATTABLE

MOVDL,AL

ADDDL,30H

MOV[SI],DL

INCAL

LOOPTRAN

24字节扩展指令和字扩展指令一般用在什么场合?

举例说明。

解:

主要用于字节相除和字相除之前,把被除数扩展为两倍宽度的操作数。

25什么叫BCD码?

什么叫组合的BCD码?

什么叫非组合的BCD码?

8086汇编语言在对BCD码进行加、减、乘、除运算时,采用什么方法?

解:

BCD码为十进制编码的二进制数。

组合的BCD数是把两位BCD加在一个字节中,高位的在高4位。

非组合的BCD码是把一位BCD数放在一个字节的低4位,高4位为0。

8086在BCD加、减和乘法运算以后用BCD调整指令把结果调整为正确的BCD

26字节扩展指令和字扩展指令一般用在什么场合?

举例说明。

解:

主要用于字节相除和字相除之前,把被除数扩展为两倍宽度的操作数。

27什么叫BCD码?

什么叫组合的BCD码?

什么叫非组合的BCD码?

8086汇编语言在对BCD码进行加、减、乘、除运算时,采用什么方法?

解:

BCD码为十进制编码的二进制数。

组合的BCD数是把两位BCD加在一个字节中,高位的在高4位。

非组合的BCD码是把一位BCD数放在一个字节的低4位,高4位为0。

8086在BCD加、减和乘法运算以后用BCD调整指令把结果调整为正确的BCD数。

在BCD除法之前先用BCD调整指令再做除法.

28用普通运算指令执行BCD码运算时,为什么要进行十进制调整?

具体地讲,在进行BCD码的加、减、乘、除运算时,程序段的什么位置必须加上十进制调整指令?

解:

因为8086指令把操作数作为二进制数进行二进制运算,要得到正确的BCD结果,需要进行调整。

在加、减、乘法指令之后加上BCD调整指令,而在除法指令之前先用BCD调整指令再用除法指令。

 

29在下列程序运行后,给相应的寄存器及存储单元填入运行的结果:

MOVAL,1OH

MOVCX,100OH

MOVBX,2000H

MOV[CX],AL

XCHGCX,BX

MOVDH,[BX]

MOVDL,01H

XCHGCX,BX

MOV[BX],DL

HLT

解:

寄存器及存储单元的内容如下:

AL=10H

BL=00H

BH=20H

CL=00H

CH=10H

DH=10H

(1000H)=l0H

(2000H)=0lH

30要求同题4.1,程序如下:

MOVAL,50H

MOVBP,100OH

MOVBX,200OH

MOV[BP],AL

MOVDH,20H

MOV[BX],DH

MOVDL,OlH

MOVDL,[BX]

MOVCX,300OH

HLT

解:

寄存器及存储单元的内容如下:

AL=50H

BL=00H

BH=20H

CL=00H

CH=30H

DL=20H

DH=20H

BP=1000H

(1000H)=50H

(2000H)=20H

[蓝色字部分有新指令,需重点理解]

辅导:

MOVSBMOVSW数据串传送指令

功能:

(ES:

DI)←(DS:

SI);附加段数据段

MOVSB;传1字节:

SI←SI±1,DI←DI±1(DF=0则+,DF=1则-:

先传低地址)

MOVSW;传1字:

SI←SI±2,DI←DI±2(DF=0则+,DF=1则-:

先传高地址)

31自1000H单元开始有一个100个数的数据块,若要把它传送到自2000H开始的存储区中去,可以采用以下3种方法实现,试分别编制程序以实现数据块的传送。

(l)不用数据块传送指令

(2)用单个传送的数据块传送指令

(3)用数据块成组传送指令。

解:

(1)不用数据块传送指令

LEASI,1000H

LEADI,2000H

MOVCX,100

L1:

MOVAX,[SI]

MOV[DI],AX

LOOPLl;CX-1,不等于零转移

HLT

(2)用单个传送的数据块传送指令

LEASI,1000H

LEADI,2000H

MOVCX,100

CLD;令方向标志DF=0

L1:

MOVSB;(ES:

DI)←(DS:

SI);附加段数据段

;传1字节:

SI←SI±1,DI←DI±1(DF=0则+,DF=1则-:

先传低地址)

LOOPL1

HLT

(3)用数据块成组传送指令

LEASI,1000H

LEADI,2000H

MOVCX,100

CLD;令方向标志DF=0

REPMOVSB;CX<>0,重复执行MOVSB,且CX-1

;REP重复前缀:

功能:

当CX≠0时重复执行后面的数据串操作指令

HLT

32利用变址寄存器,编写一个程序,把自1000H单元开始的100个数传送到自1070H开始的存储区中去。

解:

LEASI,1000H

LEADI,1070H

MOVCX,100

CLD

REPMOVSB;CX<>0,重复执行MOVSB,且CX-1

HLT

33要求同题4.4,源地址为2050H,目的地址为2000H,数据块长度为50.

解:

LEASI,2050H

LEADI,2000H

MOVCX,50

CLD

REPMOVSB;CX<>0,重复执行MOVSB,且CX-1

HLT

34编写一个程序,把自1000H单元开始的100个数传送'至1050H开始的存储区中(注意:

数据区有重叠)。

解:

LEASI,1000H

LEADI,1050H

ADDSI,63H;1000H单元后

ADDDI,63H

MOVCX,100

STD;令方向标志DF=1

REPMOVSB;CX<>0,重复执行MOVSB,且CX-1

HLT

35在自0500H单元开始,存有100个数。

要求把它传送到1000H开始的存储区中,

但在传送过程中要检查数的值,遇到第一个零就停止传送。

解:

LEASI,0500H

LEADI,1000H

MOVCX,100

N1:

MOVAL,[SI]

CMPAL,0

JZN2

MOV[DI],AL

INCSI

INCDI

LOOPN1

N2:

HLT

36若在0500H单元中有一个数

(1)利用加法指令把它乘2,且送回原存储单元(假定X×2后仍为一个字节);

(2)X×4;

(3)X×10(假定X×l0≤255)

解:

(1)LEABX,0500H;X乘2

MOVAL,[BX]

ADDAL,AL

MOV[BX],AL

(2)LEABX,0500H;X×4

MOVAL,[BX]

ADDAL,AL;X乘2

ADDAL,AL;2X乘2

MOV[BX],AL

(3)LEABX,050OH;X×10(假定X×l0≤255)

MOVAL,[BX]

ADDAL,AL;X乘2

MOVDL,AL;2X

ADDAL,AL;2X乘2=4X

ADDAL,AL;4X+4X=8X

ADDAL,DL;8X+2X=10X

MOV[BX],AL

37总线周期的含义是什么?

◆8086/8088CPU的基本总线周期由几个时钟组成?

◆如果一个CPU的时钟频率为8MHz,那么,它的一个时钟周期是多少?

◆一个基本总线周期是多少?

◆如果主频为5MHz呢?

解:

CPU访问总线(从内存储器或I/0端口读/写字节或字)所需的时间称为总线周期。

⏹8086/8088CPU的基本总线周期由4个时钟组成。

⏹若CPU的时钟频率为8MHz,时钟周期为1/8MHz=(1/8)us=0.125us

⏹时钟频率为5MHz,时钟周期为1/5MHz=(1/5)us=0.2us

 

38若要扩充1KBRAM(用2114片子),规定地址为8000H~83FFH,地址线应该如何连接?

解:

扩充lKBRAM至规定地址8000H~83FFH,其地址线的低10位(A9~A0)接芯片,高6位地址(Al5~A10=100000)产生体选(存储芯片组)信号。

39外部设备为什么要通过接口电路和主机系统相连?

解:

因为外部设备种类繁多,输入信息可能是数字量、模拟量或开关量,而且传输速度、电平、功率与CPU等电路采用的TTL电平有很大差异。

所以,需要通过接口电路的信号转换,才能与主机系统相连。

40CPU和输入输出设备之间传送的信息有哪几类?

解:

CPU和输入输出设备之间传送的信息主要有3类:

(l)数据:

在微型计算机中,数据通常为8位、16位或32位。

(2)状态信息:

在输入时,有输入设备的信息是否准备好;在输出时有输出设备是否有空,若输出设备正在输出信息,则以忙指示等。

(3)控制信息:

例如,控制输入输出设备启动或停止等。

41设一个接口的输入端口地址为0100H,状态端口地址为0104H,状态端口中第5位为1表示输入缓冲区中有一个字节准备好,可以输入。

设计具体程序以实现查询式输入。

解:

POLl:

INAL,0104H;输入状态端口数据

ANDAL,20H;测试第5位为1?

JZPOLl;第5位为1转

INAL,0100H;读入输入端口的数据

328086CPU最多可以有多少个中断类型?

按照产生中断的方法分为哪两大类?

解:

8086CPU最多可以有256个中断类型。

按照产生中断的方法,可以分为内部中断(软件中断)和外部(硬件中断)中断两大类。

43在编写中断处理子程序时,为什么要在子程序中保护许多寄存器?

解:

因为主程序调用子程序之前,往往会在一些寄存器中保存有运算的中间结果,如果在子程序中也需要使用这些寄存器时,主程序保存的中间结果就被子程序的数据覆盖了。

所以,要在子程序执行前把这些寄存器的内容保存起来(存入堆栈,称保护现场)。

在子程序执行完毕时,再从堆找中将数据恢复至寄存器中(称恢复现场)。

44在某一应用系统中,计数器/定时器8253地址为340H~343H,定时器0用作分频器(N为分频系数),定时器2用作外部事件计数器,如何编制初始化程序?

辅导:

8253的引脚A1和A0用于选择3个计数器端口或控制端口,如下:

A1A0=00选中计数器0:

写初值,读计数值(8位,16位<写两次>)

A1A0=01选中计数器1

A1A0=10选中计数器2

A1A0=11选中控制R:

写工作方式控制字

8253工作方式控制字格式:

D7

D6

D5

D4

D3

D2

D1

D0

SC1

SC0

RL1

RL0

M2

M1

M0

BCD

00=T0控制字

01=T1控制字

10=T2控制字

11=不用

00=锁存计数值供CPU读

01=读写低8位

10=读写高8位

11=先写低8位N1,后写高8位N2

000=方式0溢出中断

001=方式1单稳

X10=方式2速率,重装

X11=方式3方波

100=方式4选通,软触发

101=方式5选通,硬触发

0=二进制数

1=十进制数

解:

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

当前位置:首页 > 工程科技 > 能源化工

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

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