微计算机原理第二版潘明莲马争丁庆生著电子工业出版社习题答案16章.docx
《微计算机原理第二版潘明莲马争丁庆生著电子工业出版社习题答案16章.docx》由会员分享,可在线阅读,更多相关《微计算机原理第二版潘明莲马争丁庆生著电子工业出版社习题答案16章.docx(72页珍藏版)》请在冰豆网上搜索。
微计算机原理第二版潘明莲马争丁庆生著电子工业出版社习题答案16章
习题答案
1-1解释和区别下列名词术语。
(1).微处理器μP,微计算机μC,微处理器系统μPS。
(5).位、字节、字和双字。
(7).RAM和ROM
(8).I/O接口和I/O设备。
(9).芯片总线、片总线、内总线和外总线。
答:
(1).把CPU的复杂电路,包括运算器和控制器作在一片或几片大规模集成电路的半
导体芯片上,这种集成电路叫微处理器μP。
微处理器为核心,配上RAM、ROM,I/O接口及有关辅助电路组成的微型化的主计算机
装置称为微计算机μC。
微处理器为核心构成的专用系统称为微处理器系统μPS。
(5)一个二进制的位称作位、8个相邻二进制位称作字节、2个字节称作字,2个字(4个
字节)称作双字。
(7)能进行随即读写操作的存储器称作RAM。
只读存储器叫ROM。
(8)输入/输出接口电路称作I/O接口,通过I/O接口接入的外部设备如监视器,键盘、鼠
标称作I/O设备。
(9)位于CPU芯片内部,用来实现CPU内部各功能单元电路之间的相互连接和信号的传
递的总线叫芯片总线。
片总线是微计算机主板或单板微计算机上以CPU芯片为核心,芯片与芯片间连接的总线。
内总线指微计算机系统中实现插件板之间的连接的总线。
如IBMPC的PC总线,PC-
XT总线,PCI、ISA总线等等。
外总线用于系统之间的连接,完成系统与系统之间通信的总线。
如RS-232,IEE488、
USB等等。
1-6将下列十进制数转换为二进制数、十六进制数和BCD数
(1)124.625
(6)268.875
解:
(1)124=01111100B=7CH,0.625×16=10,所以0.625=0.AH=0.1010B
∴124.625=7C.AH=01111100.1010B=000100100100.011000100101BCD
(2)268=256+12=100001100B=10CH,0.875×16=14,∴0.875=0.EH=0.1110B.
∴268.875=10C.EH=100001100.111B=001001101000.100001110101BCD
1-7用16位二进制数表示出下列十进制数的原码、反码和补码。
(1)+128
(4)-5
解:
(1)+128的原码和补码反码均为0000000100000000B
(4)-5的原码为
1111111111111011B。
1000000000000101B,反码为
1111111111111010B,补码为
1-9写出系列字母、符号的ASCII码
(1)B
(2)H(3)SP(空格)(4)5(5)$(6)CR(回车符)(7)LF(换行)
解:
(1)42H、
(2)48H、(3)20H、(4)35H、(5)24H、(6)0DH、(7)0AH
1-10试绘出以下十六进制数在内存中存放的示意图。
设存放地址均为00H。
1
解:
(1)F7H
(2)03BAH
(3)C804326BH(4)1122334455667788H
地址内容
地址内容
地址内容
地址内容
00H
F7H
00HBAH
01H03H
00H
01H
02H
03H
6BH
32H
04H
C8H
00H
01H
02H
03H
04H
05H
06H
07H
88H
77H
66H
55H
44H
33H
22H
11H
2-1请将左边的术语和右边的含义联系起来,在括号中填入你选择的代号字母:
1.字长
2.字节
3.指令
(i)a.指由8个二进制位组成的通用基本单元。
(a)b.是CPU执行指令的时间刻度。
(h)c.μPS所能访问的存储单元数,与CPU地址总线条数有关。
4.基本指令执行周期(g)d.唯一能代表存储空间每个字节单元的地址,用5位十六进
制数表示。
5.指令执行时间(j)e.CPU访问1次存储器或I/O操作所花的时间。
6.时钟周期
7.总线周期
8.Cache
9.虚拟存储器
10.访存空间
11.实际地址
12.逻辑地址
(b)f.由段基址和偏移地址两部分组成,均用4位十六进制数表
示。
(e)g..指寄存器加法指令执行所花时间。
(k)h.完成操作的命令。
(l)i.指μP在交换,加工,存放信息时信息的基本长度。
(c)j.各条指令执行所花的时间不同,不同指令,该值不一。
(d)k.为缓解CPU与主存储器间交换数据的速度瓶颈而建立的高
速存储器。
(f)l.CPU执行程序时看到的一个速度接近内存却具有外存容量
的假想存储器。
2-2下面列出计算机中常用的一些单位,试指出其用途和含义。
(1)MIPS
(2)KB(3)MB(4)GB(5)TB
解:
(1)MIPS用来表示计算机运行的速度。
1MIPS=1百万条指令/秒。
(2)KB用来表示计算机访存空间大小。
1KB=1024(210)B(字节)
(3)MB用来表示计算机访存空间大小。
1MB=1048576(220)B(字节)
(4)GB用来表示计算机访存空间大小。
1GB=1024M(230)B(字节)
(5)TB用来表示计算机访存空间大小。
1TB=1024G(240)B(字节)
2
2-4试将左边的标志和右边的功能联系起来。
要求:
(1)在括号中填入右边功能的代号;
(2)填写其类型(属状态标志者填S:
属控制标志者填C)。
(3)写出各标志为0时表示的状态。
标
志
类
型
为0时表示的状态
1.SF(b)a.陷阱标志
S
带符号数为正数
2.CF(d
3.AF(h
4.DF(i
)b.符号标志
)C.溢出标志
)d.进位标志
S
S
C
结果最高位无进位(借位)
低4位无进位(借位)
串操作步进方向为地址递增
5.TF(a)e.零标志
C
8086正常执行程序
6.OF(c
)f.奇偶标志
S
带符号数运算未产生溢出
7.PF(f)g.中断标志
8.IF(g)h.辅助进位标志
9.ZF(e)i.方向标志
S
C
S
运算结构由奇数个1
CPU关闭中断
运算结果不为0
2-6试画出8086/8088的寄存器结构,并说出它们的主要用途。
解:
AX、BX、CX、DX用作数据寄存器,用作存放操作数、中间结果。
SP堆栈指针、BP基址指针、SI源变趾、DI目的变趾。
IP指令指针,FH控制标志、FL状态标志。
CS存储代码段首趾、DS存储数据段首趾、SS存储堆栈段首趾、ES附加数据段首趾。
AH
AL
AX
BH
CH
DH
FH
SP
BP
SI
DI
IP
CS
DS
SS
ES
BL
CL
DL
FL
BX
CX
DX
2-8若一个程序段开始执行之前,(CS)=97F0H,(IP)=1B40H,试问该程序段启动执
行指令的实际地址是什么?
解:
启动执行指令的实际地址PA=97F0H×10H+1B40H=99A40H
3
2-9若堆栈段寄存器(SS)=3A50H,堆栈指针(SP)=1500H,试问这时堆栈顶的实际
地址是什么?
解:
栈顶的实际地址=(SS)×10H+(SP)=3A50H×10H+1500H=3BA00H
2-11将8086下列工作方式的特点填于表中。
解:
特点
处理器个数总线控制信号的产生
方式
最小方式
最大方式
MN/MX
接+5V
接地
1个
可达3个
全部由8086产生
总线控制器8288产生
2-13有一32位的地址指针67ABH:
2D34H存放在00230开始的存储器中,试画出它们
的存放示意图。
解:
示意图如下
地址内容类型
0023034H偏移量
002312DH
00232ABH段基址
0023367H
2-21列表填写8086/8088的存储器和I/O的保留空间及其用途:
解:
8086/8088
保留空间
用途
存储器00000H~0007FH
FFFF0H~FFFFFH
I/OF8H~FFH
中断向量表
系统复位启动
Intel保留使用
3-1指令由操作码字段和操作数字段组成。
8086的指令长度在1~6个字节范围。
3-2分别指出下列指令中源操作数和目的操作数的寻址方式。
若是存储器寻址,试用表达
式表示出EA=?
PA=?
(1)MOVSI,2100H(4)ADCAX,[BX][SI](7)MOVAX,ES:
[BX]
解
(1)源操作数是立即数寻址,目的操作数是寄存器寻址。
(4)源操作数是基址变趾寻址,EA=(BX)+(SI),PA=16×(DS)+(BX)+(SI),
目的操作数是寄存器寻址。
(7)源操作数是寄存器间接寻址,其中EA=(BX),PA=16×(ES)+(BX),
目的操作数是寄存器寻址。
3-3已知8086中一些寄存器的内容和一些存储单元的内容如图3-20所示,试指出下列
指令执行后,AX中的内容(即(AX)=?
)。
(1)MOVAX,2010H
(2)MOVAX,BX
(3)MOVAX,[1200H]
(4)MOVAX,[BX]
(5)MOVAX,1100H[BX]
(6)MOVAX,[BX][SI]
(7)MOVAX,1100H[BX+SI]
4
(8)LEAAX,[SI]
CPU
BX0100H
SI
30100H
M
12H
DS
0002H
3000H
30101H
30102H
30103H
31200H
31201H
31202H
312-3H
34H
56H
78H
┇
2AH
4CH
B7H
65H
解:
(1)(AX)=2010H
(2)(AX)=0100H(3)(AX)=4C2AH(4)(AX)=3412H
(5)(AX)=4C2AH(6)(AX)=7856H(7)(AX)=65B7H(8)(AX)=0002H
3-4
已知(AX)=2040H,(DX)=380H,端口(PORT)=(80H)=1FH,(PORT+1)
=45H,
执行下列指令后,指出结果等于?
解:
(1)OUTDX,AL;端口(DX)=40H
(2)OUTDX,AX;端口(DX)=40H,(DX+1)=20H
(3)INAL,PORT;(AL)=1FH
(4)INAX,80H;(AX)=451FH
(5)OUTPORT1,AL;端口(PORT1)=40H
(6)OUTPORT1,AX;端口(PORT1)=40H
端口(PORT1+1)=20H
3-5已知:
(SS)=0A2F0H,(SP)=00C0H,(AX)=8B31H,(CX)=0F213H,试
画出下列指令执行到位置1和位置2时堆栈区和SP指针内容的变化示意图。
图中应标出存
储单元的实际地址PA。
PUSHAX
PUSHCX;位置1
POPF;位置2
位置1栈顶
SS0A2F0H
SP
00BCH
0A2FBCH
0A2FBEH
13H
31H
F2H
8BH
位置2栈顶
SP
0A2F0H
0A2FC0H
SS00BEH
5
3-7已知存储器数据段中的数据如图3-21所示。
阅读下列两个程序段后,回答:
1.每
个程序段的运行结果是什么?
2.两个程序段各占多少字节的内存,执行时间是多少?
解:
(1)LEA
SI,NUM1;4-2T+6T
NUM1
M
48H
DS
MOVAX,[SI];2-10T
ADDAX,4[SI];3-9T+9T
MOV8[SI],AX;3-10T
ADDSI,2;3-4T
MOVAX,[SI];2-10T
41H
16H
28H
ADCAX,4[SI];3-9T+9T
MOV8[SI],AX;3-10T
总计23个字节,84个时钟周期运行结果如图中SUM所示。
(2)
MOVAX,NUM1;3-10T
ADDAX,NUM2;4-9T=6T
MOVSUM,AX;3-10T
MOVAX,NUM1+2;3-10T
ADCAX,NUM2+2;4-9T+6T
MOVSUM+2,AX;3-10T
总计20个字节,70个时钟周期。
可见
1.两个程序运行结果相同。
NUM2
SUM
58H
22H
52H
84H
A0H
63H
68H
ACH
2.第二个程序占20个字节,比前者少3个字节,运行时间比前者少14个时钟周期。
3-11已知数据如图3-21所示,低位在前,按下列要求编写程序段:
1.NUM1和NUM2两个字数据相乘(均为无符号数),乘积放在SUM开始的单元。
解:
MOVAX,NUM1
MULWORDPTRNUM2
MOVSUM,AX
MOVSUM+2,DX
2.NUM1和NUM2两个字数据相乘(均为带符号数),乘积放在SUM开始的单元。
解:
MOVAX,NUM1
IMULWORDPTRNUM2
MOVSUM,AX
MOVSUM+2,DX
3.NUM1单元的字节数据除以13(均为无符号数),商和余数依次放入SUM开始的两个字
单元。
解:
MOVAL,NUM1
MOVAH,0
MOVCL,13
DIV
CL
MOVSUM,AX
6
4.NUM1字单元的字数据除以NUM2字单元的字,商和余数依次放入SUM开始的两个字
单元。
MOVAX,NUM1
MOVDX,0
MOVCX,NUM2
DIV
CX
MOVSUM,AX
MOVSUM+2,DX
3-13已知(AL)=0C4H,DATA单元中内容为5AH,写出下列每条指令单独执行后的结
果。
1ANDAL,DATA;(AL)=40H
2ORAL,DATA;(AL)=0DEH
3XORAL,DATA;(AL)=9EH
4NOTDATA;(DATA)=0A5H
5ANDAL,0FH;(AL)=04H
6ORAL,01H;(AL)=0C5H
7XORAL,0FFH;(AL)=3BH
8TESTAL,80H;(AL)=0C4H
所有指令执行后都对标志寄存器有影响。
3-19写出下面指令序列完成的数学计算是什么?
解:
MOVCL,3;(CL)←3
SHL
SHL
SHL
SHL
AX,CL;(AX)←(AX)×8
BL,CL;(BL)←(BL)×8
CX,CL;(CX)←(CX)×8,此时(CL)=18H
DH,CL;DH算术左移24位后(DH)=0,CF=0
3-20写出能替代下列重复操作指令完成同样功能的的指令序列
1.REPMOVSW2.REPCMPSB
3.REPSCASB4.REPLODSW
解:
1AGAIN:
MOVSW
DECCX
3AGAIN:
SCASB
DECCX
JNZ
AGAINN
JNZAGAIN
2AGAIN:
CMPSB
DECCX
JNZAGAIN
4AGAIN:
LODSW
DECCX
JNZAGAIN
3-23下面两条短转移指令的转移地址ADDR1和ADDR2分别是多少(用十六进制表示)?
1.0220EB0AJMPADDR1
2.0230EBF7JMPADDR2
解:
JMPADDR1的下一条指令的地址偏移为0222H,0222H+0AH=022CH。
7
∴ADDR1地址偏移量为022CH。
JMPADDR2下一条指令的地址偏移量为0232H,0232H+0FFF7H=0229H。
∴ADDR2地址偏移量为0229H。
3-27试编写一个程序段,能完成下列数学表达式的功能。
-1(X≤-1)
X=0
(-11(X≥1)
解:
设带符号数(WORD)在AX中,程序段如下
GETX:
TESTAX,AX
JNS
TZERO
MOVAX,0FFFFH
JMP
TEND
TZERO:
JZTEND
MOVAX,1
TEND:
RET
3-288086的中断机构中共允许256级中断,其专用中断有5个,分别为类型
0中断(除数为0的中断)、类型1中断(单步中断)、类型2中断(非屏蔽中断
NMI)、类型3中断(断点中断)和类型4中断(溢出中断)。
3-30用DOS功能调用编写一个程序,能将3-17题中的结果在屏幕上显示出来。
解:
MOVCL,4
MOVAL,87H
MOVBL,AL
SHRBL,CL
ANDAL,0FH
ORAL,30H
MOVDL,AL
MOVAH,2
INT21H
ANDBL,0FH
ORBL,30H
MOVDL,BL
INT21H
4-2计算下列表达式的值(设A1=50,B1=20,G1=2)
解:
1.A1*100+B1=50*100+20=5020
2.A1MODG1+B1=50MOD2+20=20
3.(A1+2)*B1-2=(50+2)*20-2=1038
4.B1/3MOD5=20/3MOD5=1
5.(A1+3)*(B1MODG1)=(50+3)*(20MOD2)=0
6.A1GEG1=50GE2=11111111B
7.B1AND7=20AND7=4
8
8.B1SHL2+G1SHR1=20SHL2+2SHR1=81
4-3已知数据段定义如下,设该段从03000H开始:
DSEG
SEGMENT
ARRAY1DB2DUP(0,1,?
)
ARRAY2DW100DUP(?
)
FHZ
EQU20H
ARRAY3DB10DUP(0,1,4DUP
(2),5)
DSEG
ENDS
试用分析算符OFFSET,LENGTH,SIZE,SEG,TYPE求出ARRAY1,ARRAY2,ARRAY3的
段、偏移量和类型,以及它们的LENGTH和SIZE。
解:
求段:
SEGARRAY1=0300H
SEGARRAY2=0300H
SEGARRAY3=0300H
求偏移量:
OFFSET
OFFSET
OFFSET
求类型:
ARRAY1=0000H
ARRAY2=0006H
ARRAY3=00EEH
TYPEARRAY1=1
TYPEARRAY2=2
TYPEARRAY3=1
求LENGTH:
LENGTHARRAY1=6
LENGTHARRAY2=100
LENGTHARRAY3=70
求SIZE:
SIZEARRAY1=6
SIZEARRAY2=200
SIZEARRAY3=70
4-7下述程序段执行后,寄存器CX,SI的内容是多少?
ARRYDW20DUP(5)
┆
XOR
AX,AX
MOVCX,LENGTHARRY
MOVSI,SIZEARRY-TYPEARRY
解:
(CX)=20
(SI)=40-2=38
4-8试定义一个结构,它应包括一个学生的下列信息:
姓名、学号及三门课程的成绩。
然
后给出3条结构预置语句,将3个学生的情况送入3个结构变量中。
解:
DATA
SEGMENT
9
STUDENTSTRUC
NAME
NO
ENG
MAT
PHY
DB4DUP(?
)
DB?
DB?
DB?
DB?
STUDENTENDS
S1
S2
S3
STUDENT<‘ZHAN’,20H,78H,95H,80H>
STUDENT<‘WANG’,21H,88H,91H,90H>
STUDENT<‘LILI’,22H,79H,75H,70H>
DATAENDS
4-9试定义一条宏指令,它可以实现任一数据块的传送(假设无地址重叠),源地址、目
的地址和块长度作为参数处理。
MOVDATAMACRO
MOV
CLD
TEST
JZ
STD
SN,DN,CN,PN
AL,PN
AL,#80H
CONT
CONT:
MOV
MOV
MOV
SI,OFFSETSN
DI,OFFSETDN
CX,CN
REP
ENDM
MOVSDN,SN
4-10设VAR1和VAR2为字变量,LAB为标号,试指出下列指令的错误,并改正之。
(1)ADDVAR1,VAR2
(2)SUBAL,VAR1
(3)JMPLAB[SI]
(4)JNZVAR1
解:
(5)JMPNEARLAB(6)MOVAL,VAR2
(1)MOVAX,VAR1
(2)MOVAH,0
(3)JMPOFFSETLAB[SI]
ADDAX,VAR2
SUB
AX,VAR1
(4)MOVSI,VAR1(5)JMP
JNZTARGET
……
TARGET:
JMP[SI]
NEARPTRLAB(6)MOVAX,VAR2
4-11已知数据定义如下,问L1和L2等于多少?
B1DB1,2,3,’123’
B2DB0
L1EQU
$-B1
L2EQUB2-B1
解:
$=7,∴$-B1=7-0=7
即L1等于7
L2=B2的偏移地址6-B1的偏移地址0=6
10
4-15用查表法将存