微机原理与接口技术基于8086和Proteus仿真第2版 习题参考答案.docx

上传人:b****7 文档编号:11324953 上传时间:2023-02-26 格式:DOCX 页数:61 大小:345.20KB
下载 相关 举报
微机原理与接口技术基于8086和Proteus仿真第2版 习题参考答案.docx_第1页
第1页 / 共61页
微机原理与接口技术基于8086和Proteus仿真第2版 习题参考答案.docx_第2页
第2页 / 共61页
微机原理与接口技术基于8086和Proteus仿真第2版 习题参考答案.docx_第3页
第3页 / 共61页
微机原理与接口技术基于8086和Proteus仿真第2版 习题参考答案.docx_第4页
第4页 / 共61页
微机原理与接口技术基于8086和Proteus仿真第2版 习题参考答案.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

微机原理与接口技术基于8086和Proteus仿真第2版 习题参考答案.docx

《微机原理与接口技术基于8086和Proteus仿真第2版 习题参考答案.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术基于8086和Proteus仿真第2版 习题参考答案.docx(61页珍藏版)》请在冰豆网上搜索。

微机原理与接口技术基于8086和Proteus仿真第2版 习题参考答案.docx

微机原理与接口技术基于8086和Proteus仿真第2版习题参考答案

 

创作编号:

BG7531400019813488897SX

创作者:

别如克* 

 

第1章习题答案

1.答:

为了区别所使用的数制,一般用以下两种书写格式表示:

①用括号将数字括起,后面加数制区分,数制用下标的形式给出;

②用后缀区分,二进制数、十进制数、八进制数、十六进制数的后缀分别为字母B(或b)、D(或d)、O(或o)或Q(或q)、H(或h)。

例如:

十六进制数56.78可以表示成(56.78)16或56.78H;

十进制数56.78可以表示成(56.78)10或56.78D。

2.答:

123D采用十进制,0AFH采用十六进制,77Q采用八进制,1001110B采用二进制。

3.答:

字长为8位的二进制数原码表示的最大值:

127,最小值:

-127;补码表示的最大值:

127,最小值:

-128。

字长为16位的二进制数原码表示的最大值:

32767,最小值:

-32767;补码表示的最大值:

32767,最小值:

-32768。

4.答:

(1)125D=01111101B=7DH

(2)255D=11111111B=FFH

(3)72D=01001000B=48H

(4)5090D=0001001111100010B=13E2H

5.答:

(1)11110000B=240D=F0H

(2)10000000B=128D=80H

(3)11111111B=255D=FFH

(4)01010101B=85D=55H

6.答:

(1)FFH=255D=11111111B

(2)ABCDH=43947D=1010101111001101B

(3)123H=291D=0000000100100011B

(4)FFFFH=65535D=1111111111111111B

7.答:

(1)8位时(16)原=00010000;(16)补=00010000;

16位时(16)原=0000000000010000;(16)补=0000000000010000;

(2)8位时(-16)原=10010000;(-16)补=11110000;

16位时(-16)原=1000000000010000;(-16)补=1111111111110000;

(3)8位时(+0)原=00000000;(+0)补=00000000;

16位时(+0)原=0000000000000000;(+0)补=0000000000000000;

(4)8位时(-0)原=10000000;(-0)补=00000000;

16位时(-0)原=1000000000000000;(-0)补=0000000000000000;

(5)8位时(127)原=01111111;(127)补=01111111;

16位时(127)原=0000000001111111;(127)补=0000000001111111;

(6)8位时-128超过原码表示的范围;(-128)补=10000000;

16位时(-128)原=1000000010000000;(-128)补=1111111110000000;

(7)8位时(121)原=01111001;(121)补=01111001;

16位时(121)原=0000000001111001;(121)补=0000000001111001;

(8)8位时(-9)原=10001001;(-9)补=11110111;

16位时(-9)原=1000000000001001;(-9)补=1111111111110111;

8.答:

(1)[x]补=11000010;

(2)[-x]补=00001101;(3)[x]原=11000010;(4)[x]反=10111101。

9.答:

(1)A>B;

(2)A<B

10.答:

 

创作编号:

BG7531400019813488897SX

创作者:

别如克* 

 

(1)溢出;

(2)13H;(3)溢出;(4)EDH;(5)EDH。

11.答:

(1)10001000;

(2)11101110;(3)01100110;(4)10101100;

(5)00000000;(6)10101100;(7)=01010011。

12.答:

(1)30H=48,字符为‘0’;

(2)39H=57,字符为‘9’;(3)42H=66,字符为‘B’;

(4)62H=98,字符为‘b’;(5)20H=32,字符为空格;(6)7H=7,字符为报警符;

13、答:

十进制

49

123

7

62

压缩BCD码

01001001B

000100100011B

00000111B

01100010B

非压缩BCD码

0000010000001001B

000000010000001000000011B

00000111B

0000011000000010B

ASCII码

3439H

313233H

37H

3632H

第2章习题答案

1.

(1)答:

物理地址:

物理地址(PA)是20位无符号二进制数,是CPU访问存储器的实际地址。

每个存储单元对应一个物理地址。

8086存储空间的物理地址范围是:

00000H~FFFFFH。

逻辑地址:

采用分段结构的存储器中,把通过段地址和偏移地址来表示的存储单元的地址称为逻辑地址,记为:

段地址:

偏移地址。

段地址:

8086规定各逻辑段从节的整数边界开始,即段首地址二进制值的低4位是0000,把段首地址的高16位称为段基址或段地址。

偏移地址:

把某一存储单元相对于段地址的段内偏移量称为偏移地址(也称有效地址EA)。

段地址和偏移地址都是是16位无符号二进制数。

(2)答:

时钟周期:

计算机的“时钟”是由振荡源产生的、幅度和周期不变的节拍脉冲,每个脉冲周期称为时钟周期,又称为T状态或T周期,时钟周期是微机系统工作的最小时间单元。

总线周期:

当CPU访问存储器或输入/输出端口时,需要通过总线进行读或写操作,这个过程称为总线周期(BusCycle)。

总线周期是利用总线完成一次读/写所需要的时间。

指令周期:

执行一条指令所需要的时间称为指令周期(InstructionCycle)。

指令周期由1个或多个总线周期组成。

(3)答:

最小模式:

也称为单处理器模式,是指系统中只有一片8086微处理器,所连接的存储器容量不大、片子不多,所要连接的I/O端口也不多,系统的控制总线就直接由CPU的控制线供给,从而使得系统中的总线控制电路减到最少。

最小模式适用于较小规模的系统。

最大模式:

相对于最小模式而言,适用于中、大型规模的系统。

系统中有多个微处理器,其中一个是主处理器8086,其他的处理器称为协处理器,承担某方面专门的工作。

需要增加一片8288来对8086CPU发出的控制信号进行变换和组合,以得到对存储器或I/O端口的读/写信号和对锁存器、总线收发器的控制信号。

2.答:

EU:

负责指令的执行,即从总线接口部件BIU的指令队列取指令,指令执行后向BIU送回运算结果,同时把运算结果的状态特征保存到标志寄存器中。

BIU:

负责CPU与存储器、I/O设备之间的数据传送。

BIU完成以下操作:

取指令送给指令队列、配合执行部件从指定的内存单元或者外设端口中取数据、将数据传送给执行部件或者把执行部件的操作结果传送到指定的内存单元或外设端口中。

8086的BIU和EU在很多时候可以并行工作,使得取指令、指令译码和执行指令这些操作构成操作流水线。

①当指令队列中有两个空字节,且EU没有访问存储器和I/O接口的要求时,BIU会自动把指令取到指令队列中。

②当EU准备执行一条指令时,它会从指令队列前部取出指令执行。

在执行指令的过程中,如果需要访问存储器或者I/O设备,那么EU会向BIU发出访问总线的请求,以完成访问存储器或者I/O接口的操作。

如果此时BIU正好处于空闲状态,那么,会立即响应EU的总线请求;但如果BIU正在将某个指令字节取到指令队列中,那么,BIU将首先完成这个取指令操作,然后再去响应EU发出的访问总线的请求。

③当指令队列已满,而且EU又没有总线访问时,BIU便进入空闲状态。

④在执行转移指令、调用指令和返回指令时,下面要执行的指令就不是在程序中紧接着的那条指令了,而BIU往指令队列装入指令时,总是按顺序进行的。

在这种情况下,指令队列中已经装入的指令就没有用了,会被自动消除。

随后,BIU会往指令队列中装入另一个程序段中的指令。

3.答:

地址信号是CPU发送给内存或I/O设备的,所以地址线是单向的;

数据信号可以从CPU发送给内存或I/O设备,也可以从内存或I/O设备发送给CPU,故而数据线是双向的。

4.答:

8086CPU中有14个寄存器。

它们是:

4个16位的通用寄存器:

AX、BX、CX、DX和8个8位的通用寄存器:

AH、AL、BH、BL、CH、CL、DH、DL;指针和变址寄存器SP、BP、SI、DI;4个16位的段寄存器CS、DS、SS和ES;标志寄存器FR;指令指针寄存器IP。

功能略。

5.答:

(1)加法运算的结果为:

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

 

创作编号:

BG7531400019813488897SX

创作者:

别如克* 

 

(2)加法运算的结果为:

68ACH;CF=0,PF=1,AF=0,ZF=0,SF=0,OF=0;

(3)加法运算的结果为:

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

6.答:

8086CPU可寻址的存储器地址范围是00000H~FFFFFH;

可寻址的I/O端口地址范围是0000H~FFFFH。

7.答:

由于8086CPU提供20位地址,但8086中可用来存放地址的寄存器,如IP、SP、BX、SI等都是16位的,只能直接寻址64KB。

为了寻址1MB存储空间,8086CPU采用了典型的存储器分段技术,即将整个存储器空间分为许多逻辑段,每个逻辑段的容量小于或等于64KB。

分段后,对存储器的寻址操作不再直接用20位的物理地址,而是采用段地址加段内偏移地址的二级寻址方式。

8.答:

将AH的内容送存储单元的操作过程中:

将I/O端口的内容送AL的操作过程中:

9.答:

A0

有效的数据引脚

操作

00

AD15~AD0(一个总线周期同时访问奇体和偶体,从奇地址单元读/写字数据的高8位,从偶地址单元读/写字数据的低8位)

从偶地址读/写一个字

10

AD7~AD0

从偶地址读/写一个字节

01

AD15~AD8

从奇地址读/写一个字节

01

10

AD15~AD8(第一个总线周期从奇字数据的低8位)

AD7~AD0(第二个总线周期从偶地址单元读/写字数据的高8位)

从奇地址读/写一个字

10.答:

8086系统复位后,指令指针(IP)为0000H;CS寄存器为FFFFH,其他寄存器为0000H;指令队列清空。

11.答:

8086的A19/S6~A16/S3和AD15~AD0是复用信号,需要地址锁存器将地址信息保存起来,为外接存储器或外设提供地址信息。

需要锁存的信号是:

地址信号及

信号。

12.答:

8086CPU一个基本的总线周期包含4个时钟周期:

T1、T2、T3和T4。

在T1状态,

有效,指示CPU访问的是存储器还是外设,之后CPU往多路复用总线上发出地址信息,以指出要寻址的存储单元或外设端口的地址。

在T1状态,CPU还必须在ALE引脚上输出一个正脉冲作为地址锁存信号。

信号也在T1状态送出,它用来表示数据传送的字宽。

在T2状态,CPU从总线上撤销地址,使总线的低16位浮空,置成高阻状态,为传输数据作准备。

总线的最高4位(A19~A16)用来输出本总线周期的状态信息。

读信号

或写信号

在T2状态变为有效,指示CPU将进行哪种操作(读或写)。

在T3状态,多路总线的高4位继续提供状态信息,而多路总线的低16位上出现由CPU读出的数据或者CPU从存储器或端口写入的数据。

在T4状态和前一个状态的交界处,CPU对数据总线进行采样,获得数据,总线周期结束。

13.答:

在有些情况下,外设或存储器速度较慢,不能及时地配合CPU传送数据。

这时,外设或存储器会通过“READY”信号线在T3状态启动之前向CPU发一个“数据未准备好”信号,于是CPU会在T3之后插入1个或多个附加的时钟周期TW。

取决与外设或存储器速度。

14.答:

两种操作时序的不同之处发生在T1和T2状态。

①在T1状态,读周期:

应输出低电平;写周期:

应输出高电平。

②在T2状态,读周期:

有效,而

无效,AD15~AD0为高阻态;写周期:

变为无效,而写信号

变为有效,AD15~AD0在地址撤销之后立即送出要写入存储器或外设端口的数据。

15.答:

在最小模式下,读信号

、ALE和

等信号直接由CPU给出;

在最大模式下,总线控制器8288根据

状态信号产生读信号

,ALE和

、DEN也是由8288发出的,而且DEN信号的极性与CPU在最小模式下发出的

信号正好相反。

第3章习题答案

1.答:

指令中关于如何求出操作数有效地址的方法称为寻址方式。

8086CPU支持多种寻址方式,根据操作数的类型及来源大致分为3类:

数据寻址、转移地址寻址和I/O寻址。

2.答:

8086汇编指令可以采用7种基本的数据寻址方式:

①立即寻址;②寄存器寻址;③直接寻址;④寄存器间接寻址;⑤寄存器相对寻址;⑥基址变址寻址;⑦相对基址变址寻址。

与存储器寻址方式(后5种)相比,寄存器寻址方式最快。

3.答:

如果指令中没有用前缀说明操作数存放在哪个段,则操作数默认存放在数据段。

8086系统允许操作数存放在代码段、堆栈段或附加段。

此时,就需要在指令中利用前缀指明段超越。

例如:

MOVES:

[1225H],AX

4.答:

(1)寄存器寻址方式

(2)寄存器间接寻址方式,PA=10300H

(3)寄存器间接寻址方式,PA=20200H

(4)直接寻址方式,PA=10060H

 

创作编号:

BG7531400019813488897SX

创作者:

别如克* 

 

(5)基址变址寻址方式,PA=10500H

(6)相对基址变址寻址方式,PA=12300H

(7)直接寻址方式,PA=11000H

(8)寄存器相对寻址方式,PA=10306H

(9)直接寻址方式,PA=10065H

5.答:

(1)

(2)

(3)

(4)

(5)

(6)

(7)

(8)

(9)

(10)

(11)

×

×

×

×

×

×

×

×

6.答:

(1)源操作数的寻址方式不同。

MOVAX,3000H指令的源操作数采用的是立即数寻址方式,MOVAX,[3000H]指令的源操作数采用的是直接寻址方式。

(2)指令执行后,AX的值不同。

MOVAX,MEM指令执行后,AX得到的是MEM单元的内容,而MOVAX,OFFSETMEM指令执行后,AX得到的是MEM单元的地址。

(3)指令不同。

MOVAX,MEMMOVAX,MEM指令执行后,AX得到的是MEM单元的内容,而LEAAX,MEM指令执行后,AX得到的是MEM单元的地址。

(4)转移的类型不同。

JMPSHORTL1指令实现的是段内转移,而JMPNEARPTRL1指令实现的是段间转移。

(5)指令的执行结果不同。

CMPDX,CX指令执行后,DX的值不变,而SUBDX,CX指令执行后,DX的值是两寄存器值的差。

(6)操作数所在段不同。

MOV[BP][SI],CL指令访问的是堆栈段的存储单元,而MOVDS:

[BP][SI],CL指令访问的是数据段的存储单元。

7.答:

(1)MOVBYTEPTR[BP],200指令执行后,(58200H)=200H

(2)MOVWORDPTR[BX],2000指令执行后,(22400H)=2000H

8.答:

当前栈顶地址是:

FE00H:

2010H;

执行PUSHBX指令后,栈顶地址变为:

FE00H:

200EH,栈顶2字节内容是:

3457H。

9.答:

(1)(DX)=3C62H,CF=1

(2)(DX)=03C6H,CF=0

(3)(DX)=18A0H,CF=1

(4)(DX)=2BC6H,CF=0

(5)(DX)=18B7H,CF=1

(6)(DX)=BCC5H,CF=0

10.答:

(AX)

CF

ZF

OF

SF

PF

(1)

134EH

0

0

0

0

1

(2)

0821H

0

0

0

0

1

(3)

F142H

1

0

0

1

1

(4)

0A69

1

0

0

 

创作编号:

BG7531400019813488897SX

创作者:

别如克* 

 

1

1

(5)

F596

-

-

-

-

-

(6)

0A69

0

0

0

0

1

11.答:

(1)CMPCX,DX

JANEXT

(2)CMPAX,BX

JNANEXT

(3)CMPDX,0

JZNEXT

(4)CMPCX,DX

JBENEXT

12.答:

(1)程序转向L1。

(2)程序转向L1。

(3)程序转向L2。

(4)程序转向L5。

(5)程序转向L5。

13.答:

因为普通运算指令执行的是二进制数的运算,而BCD码是十进制数,所以,需要对运算结果进行十进制调整。

在做BCD码的加、减和乘法运算时,十进制调整指令放在运算指令之后;而作BCD码的除法运算时,在运算指令之前用十进制调整指令对被除数进行调整。

14.答:

MOVCl,3

SHRbx,cl

15.答:

(略)

16.答:

DATASEGMENT

COUNT=100H

ORG1000H

D_DATADBCOUNTDUP(?

ORG2170H

S_DATADBCOUNT/5DUP(1,2,3,4,5)

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,ES:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVES,AX

LEASI,S_DATA

LEADI,D_DATA

MOVCX,COUNT

REPMOVSB

MOVAL,1

MOVCX,COUNT

LEADI,D_DATA

AGAIN:

CMPBYTEPTR[DI],AL

JNZNEXT

MOVBYTEPTR[DI],''

NEXT:

INCDI

LOOPAGAIN

EXIT:

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

 

17.答:

CODESEGMENT

ASSUMECS:

CODE

START:

MOVAX,5678H

 

创作编号:

BG7531400019813488897SX

创作者:

别如克* 

 

MOVDX,1234H

NOTAX

NOTDX

ADDAX,1

ADCDX,0

EXIT:

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

18.答:

;本程序未考虑溢出的情况。

DATASEGMENT

A1DW5050H

A2DW?

;存A1的反码

A3DW?

;存A1的补码

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAX,A1

NOTAX

MOVA2,AX

INCAX

MOVA3,AX

EXIT:

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

19.答:

 

20.答:

21.答:

DATASEGMENT

STRING1DB'hELLO!

'

COUNT1=$-STRING1

STRING2DB'hEL1O!

'

COUNT2=$-STRING2

IMDB'MATCH$'

NMDB'NOTMATCH$'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

 

创作编号:

BG7531400019813488897SX

创作者:

别如克* 

 

MOVAX,DATA

MOVDS,AX

LEASI,STRING1

LEADI,STRING2

MOVCX,COUNT1

MOVBX,COUNT2

CMPCX,BX

JNZDISPNOTMATCH

NEXT:

MOVAL,[SI]

MOVAH,[DI]

CMPAL,AH

JNZDISPNOTMATCH

INCSI

INCDI

LOOPNEXT

ISMATCH:

MOVDX,OFFSETIM

MOVAH,9

INT21H

JMPEXIT

DISPNOTMATCH:

MOVDX,OFFSETNM

MOVAH,9

INT21H

EXIT:

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

22.答:

DSEGSEGMENT

DATADB5,6,7,8

DW?

DATA2DB1,10,100,20

DSEGENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DSEG

START:

MOVAX,DSEG

MOVDS,AX

 

创作编号:

BG7531400019813488897SX

创作者:

别如克* 

 

MOVDX,0

MOVCX,4

LEASI,DATA

LEADI,DATA2

NEXT:

MOVAL,[DI]

MOVBL,[SI]

CALLDOMUL

ADDDX,AX

INCDI

INCSI

LOOPNEXT

MOVWORDPTRDATA+4,DX

EXIT:

MOVAH,4CH

INT21H

DOMULPROC

MULBL

RET

DOMULENDP

CODEENDS

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

当前位置:首页 > 高等教育 > 历史学

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

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