微型计算机原理课后习题答案王忠民主编.docx

上传人:b****7 文档编号:8758131 上传时间:2023-02-01 格式:DOCX 页数:26 大小:356.64KB
下载 相关 举报
微型计算机原理课后习题答案王忠民主编.docx_第1页
第1页 / 共26页
微型计算机原理课后习题答案王忠民主编.docx_第2页
第2页 / 共26页
微型计算机原理课后习题答案王忠民主编.docx_第3页
第3页 / 共26页
微型计算机原理课后习题答案王忠民主编.docx_第4页
第4页 / 共26页
微型计算机原理课后习题答案王忠民主编.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

微型计算机原理课后习题答案王忠民主编.docx

《微型计算机原理课后习题答案王忠民主编.docx》由会员分享,可在线阅读,更多相关《微型计算机原理课后习题答案王忠民主编.docx(26页珍藏版)》请在冰豆网上搜索。

微型计算机原理课后习题答案王忠民主编.docx

微型计算机原理课后习题答案王忠民主编

王忠民主编

西安电子科技大学出版

部分习题答案

第二章计算机中的数值和编码

1、将十进制数转换为二进制和十六进制

(1)129.75=10000001.11B=81.CH

(2)218.8125=11011010.1101B=DA.DH

(3)15.625=1111.101B=F.AH

(4)

47.15625=101111.00101B=2F.28H

2、将下列二进制数转换为十进制和十六进制

3、完成下列二进制数的加减法运算

01110101.0110

101111.1011

4、完成下列十六进制数的加减法运算

(3)12AB.F7+3CD.05=1678.FCH(4)6F01H—EFD8H=7F29H5、计算下列表达式的值

(1)128.8125+10110101.1011B+1F.2H=101010101.1010B

(2)287.68—10101010.11H+8E.EH=103.CEH

(3)18.9+1010.1101B+12.6H—1011.1001=36.5256、选取字长n为8位和16位两种情况,求下列十进制数的补码。

Y=+33的补码:

00100001,0000000000100001

Z=—128的补码:

10000000,1111111110000000

⑷N=+127的补码:

01111111,

0000000001111111

⑸A=—65的补码:

10111111,

1111111110111111

⑹65的补码:

01000001,

0000000001000001

⑺C=—96的补码:

10100000,

1111111110100000

(8)□=+96的补码:

01100000,

0000000001100000

7、写出下列用补码表示的二进制数的真值

[X]补=1000000000000000H

X=—1000000000000000H=—32768

8、设机器字长为8位,最高位为符号位,试对下列格式进行二进制补码运算,并判断结果

是否溢出。

(1)43+8

•••[43]补=00101011B,[8]补=00001000B•••[43]补+[8]补=00101011B+00001000B=00110011B=33H

00101011B

+00001000B

00110011B

无溢出

出)

出)

出)

出)

为带符号补码数,计算结果是否溢出?

x+y=11101111B+11001001B=10111000B=1B8H

11101111B

+11001001B

若为无符号数

若为带符号补码数

•••CF=1

••-不正确

•••CF=1,DF=1

OF=0•-不溢出

x+y=0B8H

x+z=61H

y+z=3BH

z+v=0CCH

不正确

不正确

不正确

正确

不溢出

不溢出

不溢出

溢出

第三章

80X86微处理器

10111000B

1.简述8086/8088CPL中BIU和EU的作用,并说明其并行工作过程。

答:

(1)BIU的作用:

计算20位的物理地址,并负责完成CPU与存储器或I/O端口

之间的数据传送。

(2)EU的作用:

执行指令,并为BIU提供所需的有效地址。

(3)并行工作过程:

当EU从指令队列中取出指令执行时,BIU将从内存中取出

指令补充到指令队列中。

这样就实现了取指和执行指令的并行工作。

2.8086/8088CPU内部有哪些寄存器?

其主要作用是什么?

答:

8086/8088CPU内部共有14个寄存器,可分为4类:

数据寄存器4个,地址寄存

器4个,段寄存器4个和控制寄存器2个。

其主要作用是:

(1)数据寄存器:

一般用来存放数据,但它们各自都有自己的特定用途。

AX(Accumulator)称为累加器。

用该寄存器存放运算结果可使指令简化,提高指令的

执行速度。

此外,所有的I/O指令都使用该寄存器与外设端口交换信息。

BX(Base)称为基址寄存器。

用来存放操作数在内存中数据段内的偏移地址,

CX(Counter)称为计数器。

在设计循环程序时使用该寄存器存放循环次数,可使程序

指令简化,有利于提高程序的运行速度。

DXData)称为数据寄存器。

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

I/O端口地址;

在做双字长乘除法运算时,DX与AX一起存放一个双字长操作数,其中

DX存放高16位

数。

(2)地址寄存器:

一般用来存放段内的偏移地址。

SP(StackPointer)称为堆栈指针寄存器。

在使用堆栈操作指令

(PUSH或POP对

堆栈进行操作时,每执行一次进栈或出栈操作,系统会自动将SP的内容减2或加2,

以使其始终指向栈顶。

BP(BasePointer)称为基址寄存器。

作为通用寄存器,它可以用来存放数据,但更

经常更重要的用途是存放操作数在堆栈段内的偏移地址。

SI(SourceIndex)称为源变址寄存器。

SI存放源串在数据段内的偏移地址。

DI(DestinationIndex)称为目的变址寄存器。

DI存放目的串在附加数据段内的

 

偏移地址。

(3)段寄存器:

用于存放段地址

 

中的物理地址。

DS的内容左移4位再加上按指令中存储器寻址方式给出的偏移地址即得到对数据段指

定单元进行读写的物理地址。

SS(StackSegment)称为堆栈段寄存器,用来存放程序当前所使用的堆栈段的段地

址。

堆栈是存储器中开辟的按“先进后出”原则组织的一个特殊存储区,主要用于调用

子程序或执行中断服务程序时保护断点和现场。

ES:

ExtraSegment)称为附加数据段寄存器,用来存放程序当前使用的附加数据段的

段地址。

附加数据段用来存放字符串操作时的目的字符串。

(4)控制寄存器

IP(InstmcdonPointer)称为指令指针寄存器,用来存放下一条要读取的指令在代码

FLAGS称为标志寄存器,它是一个16位的寄存器,但只用了其中9位,这9位包括

(个状态标志位和3个控制标志位。

它用来反映算术运算和逻辑运算结果的一些特征,

或用来控制CPU的某种操作。

3.8086/8088CPU中有哪些寄存器可用来指示操作数在存储器中某段内的偏移地址

答:

可用来指示段内偏移地址的寄存器共有6个:

IP、SPBPBXSI、DI4.8086/8088CPU中标志寄存器FLAGS有哪些标志位?

它们的含义和作用如何?

答:

标志寄存器中的标志共有9个,分为两类:

状态标志6个和控制标志3个。

其作用

是:

(1)状态标志:

用来反映算术和逻辑运算结果的一些特征。

CF(CarryFlag)—进位标志位。

当进行加减运算时,若最高位发生进位或借位,则

CF为1,否则为0。

该标志位通常用于判断无符号数运算结果是否超出了计算机所能表

示的无符号数的范围。

PF(ParityFlag)—奇偶标志位。

当指令执行结果的低8位中含有偶数个

1时,PF为

1,否则为0。

AF(AuxiliaryFlag)—辅助进位标志位。

当执行一条加法或减法运算指令时,

若结

果的低字节的低4位向高4位有进位或借位,则AF为1,否则为0。

ZF(ZeroFlag)—零标志位。

若当前的运算结果为0,则ZF为1,否则为

00

SF(SignFlag)—符号标志位。

当运算结果的最高位为1时,SF=1,否则为00

OF(OverflowFlag)—溢出标志位。

当运算结果超出了带符号数所能表示的数值范

围,即溢出时,OF=1,否则为0。

该标志位通常用来判断带符号数运算结果是否溢出

⑵控制标志位:

用来控制CPU的操作,由程序设置或清除。

它们是:

TF(TrapFlag)—跟踪(陷阱)标志位。

它是为测试程序的方便而设置的。

若将

TF

置1,8086/8088CPU处于单步工作方式,否则,将正常执行程序。

IP(InterruptFlag)—中断允许标志位。

它是用来控制可屏蔽中断的控制标志位。

若用STI指令将IF置1,表示允许CPU接受外部从INTR引脚上发来的可屏蔽中断请求

信号;若用CLI指令将IP清0,则禁止CPU接受可屏蔽中断请求信号。

IF的状态对非

屏蔽中断及内部中断没有影响。

DRDirectionFlag)—方向标志位。

若用STD将DF置1,串操作按减地址方式进行,

也就是说,从高地址幵始,每操作一次地址自动递减;若用CLD将DF清0,则串操作

按增地址方式进行,即每操作一次地址自动递增。

5.8086/8088CPU的地址总线有多少位?

其寻址范围是多少?

答:

8086/8088地址总线有20根,寻址范围1MB

 

6.什么叫指令队列?

8086/8088CPU中指令队列有什么作用?

其长度分别是多少?

答:

(1)

指令队列:

采用“先进先出”原则,按顺序存放预执行指令的缓冲器称为

指令队列。

指令队列的作用:

存放EU将要执行的指令,使CPU的取指和执行指令能并

行工作。

指令队列的长度:

8086为6个字节,8088为4个字节。

7.Intel8086与8088有何区别?

答:

8086与8088的区别有三处:

(1)

外部数据总线位数不同(即地址/数据分时复用引脚条数不同)

8086为16位:

AD5〜AD。

8088为8位:

AD〜AD。

内部指令队列缓冲器长度不同;

8086有6个字节。

当指令队列出现2个空字节时,BIU将取指补充。

8086有4个字节。

当指令队列出现1个空字节时,BIU将取指补充。

外部某些控制总线定义不同。

①8086的28号引脚定义为M7IO(S2),8088定义为IO/M(S)

②8086的34号引脚定义为BHE^S,8088定义为SS/(HIGH)

8.简述8086CPU使用地址锁存信号ALE将地址A5〜A与数据D5〜C0分幵的工作原理。

答:

在任何一个总线周期的T1状态,ALE均为高电平,以表示当前地址/数据复用线

上的输出的是地址信息,在ALE由高变低的下降沿时把地址装入地址锁存器,而在

T2、

T3和T4状态,ALE均为低电平,以表示当前地址/数据复用线上的输出的是数据信息,

此时通过数据收发器进行传送。

9.什么是逻辑地址?

什么是物理地址?

若已知逻辑地址为BA00:

A800,试求物理地址。

答:

逻辑地址:

由段地址和偏移地址表示的存储单元地址称为逻辑地址。

 

若逻辑地址为BA00H:

A800H

则物理地址=BAOOHK10H+A800H^C4800H

10.简述堆栈指针寄存器SP的功能及堆栈的操作过程。

答:

(1)SP的功能:

指示进栈和出栈操作时的偏移地址。

(2)堆栈的操作过程:

进栈时,先将SP-2,再将数据压入堆栈(即先移后入)

出栈时,先将数据弹出堆栈,再将SP+2(即先出后移)。

1、指出源操作数的寻址方式

对寻址

相对寻址

寻址

对寻址

寻址

2、指出下列指令是否正确

寄存器

(2)MOVBP,AL

(3)XCHGAH,AL

(4)OUT

(5)MOV

(6)MOV

(7)MOV

(8)MOV

(9)AND

(10)MOV

(11)ADD

(12)

(13)

(14)

(15)

310H,AL

BX,[BX]

ES:

[BX+DI]

AX,[SI+DI]

;错误。

操作数类型不一致

;正确。

;错误。

端口直接寻址的范围应在0〜FFH之间

;正确。

AX;正确。

;错误。

存储器寻址中有效地址不能由两个变址寄存器组

SS:

[BX+SI+100H],BX;正确。

AX,BL

DX,DS:

[BP]

[SI],20H

MOV30H,AL

PUSH

2000H

MOV

MOV

[SI],[2000H]

SI,AL

(16)ADD[2000H],20H

(17)

MOV

CS

,AX

(18)

INC

[DI]

(19)

OUT

BX,

AL

(20)

SHL

BX,

3

(21)

XCHG

CX,

DS

(22)

POP

AL

操作数)

;错误。

操作数类型不一致

;正确。

;错误。

用PTR说明类型

;错误。

目的操作数不能为立即数

;错误。

堆栈指令的操作数不能是立即数

;错误。

两个操作数不能同时为存储器操作数

;错误。

操作数类型不一致

;错误。

用PTR说明类型

;错误。

目的操作数不能为代码段寄存器

;错误。

需用PTR说明类型

;错误。

端口间接寻址的寄存器只能是DX寄存器

;错误。

移位次数大于1时应该用CL寄存器

;错误。

交换指令中不能出现段寄存器

;错误。

堆栈指令的操作数只能是字操作数(即16位

3、写出存储器操作数物理地址的计算表达式

 

(1)

MOVAL,[DI]

;(DS)X10H+(DI)

(2)

MOVAX,[BX+SI]

;(DS)X10H+(BX)+(SI)

(3)

MOV5[BX+DI],AL

;(DS)X10H+(BX)+(DI)+5

(4)

ADDAL,

ES:

[BX]

;(ES)X10H+(BX)

(5)

SUBAX,

[1000H]

;(DS)X10H+1000H

(6)

ADCAX,

[BX+DI+2000H]

;(DS)X10H+(BX)+(DI)+2000H

(7)

MOVCX,

[BP+SI]

;(SS)X10H+(BP)+(SI)

(8)

INCBYTEPTR[DI]

;(DS)X10H+(DI)

 

4、若(DS)=3000H,(BX)=2000H,(SI)=0100H,(ES)=4000H,计算下列存储器操作数的

物理地址

5、若(CS)=E0004说明代码段可寻址物理存储空间的范围。

•••最小物理地址为:

(CS)X10H+0000H=E0000H

最大物理地址为:

(CS)X10H+FFFF*EFFFFH

•••代码段可寻址物理存储空间的范围是:

E0000H^EFFFFH6、设(SP)=2000H,(AX)=3000H,(BX)=5000H,执行下列程序段后,(SP)=?

(AX)=?

(BX)=?

PUSHAX

PUSHBX

POPAX

(SP)=1FFEH(AX)=5000H,(BX)=5000H

条指令后,(AL)=?

,CF=?

,OF=0,ZF=?

(1)相同点:

两条指令都能完成(AL)—09H的功能,并且都影响六个状态标志位;

不同点:

SUB指令将运算结果回送到AL寄存器中,而CMP指令不回送。

(2)SUBAL,09H

CMPAL,09H

;(AL)=FFH,CF=1,OF=0,ZF=0

;(AL)=08H,CF=1,OF=0,ZF=0

 

10、设(BX)=6D16H(AX)=1100H,写出下列三条指令执行后,AX和BX寄存器中的内容。

MOVCL,06H

ROLAX,

CL

SHR

BX,CL

11、设初值(AX)=0119H,扌

MOVCH,

AH

ADDAL,

AH

DAA

XCHG

AL,CH

ADCAL,

34H

DAA

MOVAH,

AL

MOVAL,

CH

12、指出下列程序段的功能。

(1)MOVCX,

10

LEA

SI,First

LEA

DI,Second

REPMOVSB

(2)CLD

LEA

DI,[0404H]

MOVCX,

0080H

XORAX,

AX

(AX)=3520H

REPSTOSW

F列程序段后,(AX)=?

(AX)=4004H

(BX)=01B4H

将First串中前10个字符传送至Second中

将起始地址为0404H开始的80H个单元置成0

13、设(BX)=6F30H,(BP)=0200H,(SI)=0046H,(SS)=2F00H,(2F246H)=4154H,试

求执行XCHGBX[BP+SI]后,(BX)=?

(2F246H)=?

 

14、设(BX)=0400H,(DI)=003CH执行LEABX,[BX+DI+0F62H]后,(BX)=?

(BX)=139EH

15、设(DS)=C000H(C0010H)=0180H,(C0012H)=2000H,执行LDSSI,[10H]后,(SI)

(SI)=0180H,(DS)=2000H

16、已知(DS)=091DH(SS)=1E4AH(AX)=1234H,(BX)=0024H,(CX)=5678H,(BP)=

0024H,(SI)=0012H,(DI)=0032H,

(09226H)=00F6H,(09228H)=1E40H,试求单独执行

F列指令后的结果。

LDSSI,[BP][DI]

XCHGCX32H[BX]

XCHG20H[BX][SI],AX

;(AX)=5678H,(09226H)=1234H

17、若CPU中各寄存器及RAM参数如图所示,试求独立执行如下指令后,CPU及RAM相应寄

存器及存储单元的内容是多少?

CPU

RAM

执行前

执行后

CS

3000H

FFFFH

CX

20506H

06H

不变

DS

2050H

0004H

BX

20507H

00H

不变

SS

50A0H

1000H

SP

20508H

87H

不变

ES

0FFFH

17C6H

DX

20509H

15H

不变

IP

0000H

8094H

AX

2050AH

37H

94H

DI

000AH

1403H

BP

2050BH

C5H

不变

SI

0008H

1

CF

2050CH

2FH

不变

 

(1)MOVDX[BX+2]

;(DX)=0006H,(BX)=0004H

(2)PUSHCX

;(SF)=0FFEH

(3)MOVCXBX

;(CX=0004H,(BX)=0004H

(4)TESTAX01

;(AX)=8094H,(CF)=0

(5)MOVAL,[SI]

;(AL)=87H

(6)ADCAL,[DI]

;(AL)=0CCH(CF)=0

DAA;(AL)=32H

(7)INCSI

;(SI)=0009H

(8)DECDI

;(DI)=0009H

(9)MOV[DI],AL

;((DI))=94H

(10)XCHGAX

DX;(AX=17C6H(DX=8094H

(11)XORAH,BL

;(AH=84H,(BL)=04H

(12)JMPDX

;(IP)=17C6H

18、(DS)=2000H,(BX)=1256H,(SI)=528FH,偏移量=20A14(232F7H)=3280H,(264E5H)

(1)

JMPBX

;(IP)=1256H

(2)

JMPTABLE[BX]

;(IP)=3280H

(3)

JMP[BX][SI]

;(IP)=2450H

19、设(IP)

=3D8FH(CS)二

=4050H,(SP)=0F17H,当执行CALL2000H:

0094H后,试指出

(CS)、(SP)、((SP))、((SP)+1)、((SP)+2)和((SP)+3)的内容。

(IP)、

=2450H,试求执行下述指令后的结果。

CALL指令是5字节指令,下一条指令地址为4050H:

3D94H

所以执行后

(IP)=0094H(CS)=2000H(SP)=0F13H((SP))=94H,((SP)+1)=00H,((SP)+2)=00H,((SP)+3)=20H

第五章汇编语言程序设计

2.PLENTH的值为0022,它表示当前已分配单元空间;

3.L

的值为6;

5.

AX)=000AH;(BL)=0AH;(CL)=01H;

10.

MOVAX,4A82H

MOVDL,AH

ANDDL,

0F0H

MOVCL,

4

SHRDL,

CL

PUSHAX

ANDAH,

0FH

MOVBH,

AH

ANDAL,

0F0H

MOVBL,

AL

MOVCL,

4

SHRBL,

CL

MOVCL,

BH

POPAX

ANDAL,

0FH

11.datasegment

string1db'Iamastudent.'

string2db'Iamastudent.'

yesdb'match',0dh,0ah,'$'

nodb'nomatch',0dh,0ah,'$'

dataendscodesegment

assumecs:

code,ds:

data,es:

datastart:

pushds

subax,ax

pushax

movax,data

movds,ax

moves,ax

leasi,string1

leadi,string2

movcx,string2-string1

cld

repecmpsb

jnzdispno

movah,9

leadx,yes

jmpexitdispno:

movah,9

leadx,no

int21hexit:

MOVAH,4CH

INT

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

当前位置:首页 > 外语学习 > 日语学习

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

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