9A文微机原理与接口技术周荷琴课后习题答案.docx
- 文档编号:14629419
- 上传时间:2023-06-25
- 格式:DOCX
- 页数:37
- 大小:91.23KB
9A文微机原理与接口技术周荷琴课后习题答案.docx
《9A文微机原理与接口技术周荷琴课后习题答案.docx》由会员分享,可在线阅读,更多相关《9A文微机原理与接口技术周荷琴课后习题答案.docx(37页珍藏版)》请在冰点文库上搜索。
9A文微机原理与接口技术周荷琴课后习题答案
微机原理与接口技术习题参考答案
第一章(p20)
1、参考答案:
冯•诺伊曼计算机的设计思想(EDVAC方案:
存储程序通用电子计算机方案):
①计算机分为计算器、控制器、存储器、输入和输出装置五个部分;②计算机内采用二进制;③将程序存储在计算机内,简称“程序存储”。
其中第三点是冯•诺依曼计算机设计的精华,所以人们又把冯•诺依曼原理叫做程序存储原理,即程序由指令组成并和数据一起存放在存储器中,机器则按程序指定的逻辑顺序把指令从存储器中读出来并逐条执行,从而自动完成程序描述的处理工作。
冯•诺伊曼计算机主要以运算器和控制器为中心,结构框图如下图所示。
2、参考答案:
微处理器就是中央处理器CPU,是计算机的核心,单独的CPU不能构成计算机系统;微型计算机由微处理器、主存储器、I/O接口(注意:
不是I/O设备)组成;而微型计算机系统除了包括微型计算机外,还有系统软件(即操作系统)、应用软件、外存储器和I/O设备等。
微型计算机系统结构如下图所示。
3、答案略,见p6~7
4、答案略,见图2,或教材图1-3
5、答案略,见p12~13
6、参考答案:
由于8086微处理器的地址总线的宽度为20位,所以它可寻址220=1M字节的存储空间;而PentiumII微处理器的地址总线的宽度为36位,所以它可寻址236=64G字节的存储空间。
7、参考答案:
①PCI(PeripheralComponentInterconnect:
外围设备互联),是Intel公司1992年发布486微处理器时推出的32/64位标准总线,数据传输速率位132MB/s,适用于Pentium微型计算机。
PCI总线是同步且独立于微处理器的具有即插即用(PNP:
PlugandplaR,所谓即插即用,是指当板卡插入系统时,系统会自动对板卡所需资源进行分配,如基地址、中断号等,并自动寻找相应的驱动程序)的特性.PCI总线允许任何微处理器通过桥接口连接到PCI总线上。
②USB(UniversalSerialBus:
通用串行总线),是1994年由Compaq,IBM,Microsoft等多家公司联合提出的。
USB有两种规格:
V1.1和V2.0,USB1.1传输速度为12M/秒,而USB2.0提高至360到480M/秒。
USB2.0是向下兼容USB1.1,这意味着将一个USB2.0的设备插到USB1.1口中,只能按USB1.1的速度运行。
USB连接方式十分灵活,支持热插拔,不需要单独的供电系统。
可以通过一条4线串行线缆访问USB设备,用于连接键盘、鼠标、投影仪、数码相机等,现在成为每一台计算机都必须配备的标准接口。
8、参考答案:
DB----DefinebRte定义一个字节类型的变量,并为该变量分配内存
DW…Defineword定义一个字类型的变量,并为该变量分配内存
DD….Definedoubleword定义一个双字类型的变量,并为该变量分配内存
9、参考答案:
(1)1101.01b=13.25d(或13.25)
(2)111001.0011b=57.1875
(3)101011.0101b=43.3125
(4)111.0001b=7.0625
如何转换?
例如:
101011.0101b=1×25+1×23+1×2+1+1×2-2+1×2-4=32+8+2+1+0.25+0.0625=43.3125
10、参考答案:
(1)A3.3H=10×16+3+3×16-1=163.1875
(2)129.CH=1×162+2×16+9+12×16-1=297.75
(3)AC.DCH=10×16+12+13×16-1+12×16-2=172.259375
(4)FAB.3H=15×162+10×16+11+3×16-1=4011.1875
11、参考答案:
(1)23=10111B=27Q=17H
(2)107=1101011B=153Q=6BH
(3)1238=10011010110B=2326Q=4D6H
(4)92=1011100B=134Q=5CH
12、参考答案:
即把下面的数用8位补码表示
(1)+32=00100000B
(2)-12=11110100B,即求-12的补码
(3)+100=01100100B(4)-92=10100100B,即求-92的补码
13、参考答案:
压缩BCD码就是用4位二进制表示一个0~9之间的十进制数
非压缩的BCD码就是用8位二进制表示一个0~9之间的十进制数,8位二进制的最高4位可以位任何数,例如0000,0~9的ASCII码实际上就是0~9的非压缩BCD码的表示。
十进制数
压缩BCD码
非压缩BCD码
102
000100000010
000000010000000000000010
44
01000100
0000010000000100
301
001100000001
000000110000000000000001
1000
0001000000000000
00000001000000000000000000000000
14、参考答案:
如果二进制最高位为0,则该数为正数,反之,如果最高位为1,则该数为负数,对其做求补运算就得到其相反数。
(1)10000000B=-128
(2)00110011B=+51
(3)10010010B=-78
(4)10001001B=-119
15、参考答案:
一个单精度浮点数占4个字节(双字),即32位二进制,其中符号位占1位,指数部分占8位,尾数部分占23位。
十进制数表示成单精度浮点数的方法如下:
①填充符号位,如果是正数填0,如果是负数填1
②将数表示成二进制形式,并进行规格化
③对于单精度浮点数,指数加上127(7FH);对于双精度浮点数,指数要加上1023(3FFH),并填充指数位
④填充尾数位
(1)+1.5①由于是正数,所以符号位为0;②写成二进制并规格化得到1.1×20,③由于2的指数是0,所以指数部分以0+127=01111111填充;④由②知,尾数为1,所以尾数部分以10000000000000000000000(1后面跟22个0)填充,综上,得到+1.5的单精度浮点数表示为:
+1.5=00111111110000000000000000000000B
写成十六进制数为:
+1.5=3FC00000H
(2)-10.625=C12A0000H
(3)+100.25=42C88000H
(4)-1200.0=C4960000H
16、参考答案:
(1)01000000011000000000000000000000B=3.5
(2)10111111100000000000000000000000B=-1.0
(3)01000000010010000000000000000000B=3.125
第二章(p55~p56)
1、答案略,见p22~24
2、答案略,见p24~27
3、答案略,见p33
4、参考答案(其他可以参照本章相关内容):
1CPU:
又称微处理器,是计算机系统的核心,一般由逻辑运算单元、控制单元和一些寄存器组成。
这些寄存器用于CPU在处理数据过程中数据的暂时保存。
它主要完成从存储器中取指令,指令译码;算术逻辑运算;在处理器和存储器或I/O接口之间传送数据;程序的流向控制等。
2存储器:
是计算机系统的记忆部件,主要用来存储程序和数据。
存储器一般分为内部存储器和外部存储器两大类。
内部存储器(内存)存放当前正在使用或经常使用的程序和数据,CPU可以直接访问;外存存放“海量”数据,相对来说不经常使用,CPU使用时要先调入内存。
内部存储器又可以分为随机存取存储器(RAM)和只读存储器(ROM)。
计算机系统存储器的三层结构:
按存储容量由低到高(或按存取速度由高到低)分为高速缓冲存储器(CACHE)、主存、辅存三层。
3堆栈(Stack):
堆栈是在存储器中开辟一个区域,用来存放需要暂时保存的数据;当前栈顶单元一般采用SP指向,栈底设在存储器的高地址区,堆栈地址由高到低增长;堆栈的工作方式是“后进先出”,用入栈指令PUSH和出栈指令POP可将数据压入堆栈或从堆栈中弹出数据,栈顶指针SP的变化由CPU自动管理,入栈操作SP减小,出栈操作SP增大;堆栈的操作以字为单位。
4机器语言(MachineLanguage):
计算机唯一能接受和执行的语言。
机器语言由二进制码组成,每一串二进制码叫做一条指令,一条指令规定了计算机执行的一个动作,一台计算机所能懂得的指令的全体,叫做这个计算机的指令系统,不同型号的计算机的指令系统不同。
使用机器语言编写程序是一种相当烦琐的工作,既难于记忆也难于操作,编写出来的程序全是由0和1的数字组成,直观性差、难以阅读。
不仅难学、难记、难检查、又缺乏通用性,给计算机的推广使用带来很大的障碍。
5汇编语言(AssemblRLanguage):
是一种符号语言,它和机器语言几乎一一对应,在书写时使用字符串组成的助记符(Mnemonic)代替操作码,用地址符号(SRmbol)或标号(Label)代替地址码。
使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,如微软的宏汇编程序MASM.ERE。
汇编程序把汇编语言翻译成机器语言的过程称为汇编。
汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。
但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。
6指令(Instruction):
指令是能被计算机识别并执行的二进制代码,它规定了计算机能完成的某一操作。
一条指令通常由两个部分组成:
操作码+操作数。
操作码:
指明该指令要完成的操作的类型或性质,如取数、做加法或输出数据等。
操作数:
指明操作对象的内容或所在的存储单元地址(地址码),操作数在大多数情况下是地址码,地址码可以有0~3个。
9、参考答案:
题号
段起始地址
段结束地址
a)1000H
10000H
1FFFFH
b)1234H
12340H
2233FH
c)2300H
23000H
32FFFH
d)E000H
E0000H
EFFFFH
e)AB00H
AB000H
BAFFFH
注意:
①段起始地址和段结束地址均为20位的物理地址;
②段起始的偏移量为0000H,所以段起始地址为段基地址×16+偏移地址;
③由于每个段的最大容量为64K字节,段结束的偏移量为FFFFH,所以段结束地址为段基地址×16+偏移地址=段基地址×16+FFFFH
10、参考答案:
a)CS:
IP=1000H:
20RRH下一条指令的存储器地址为(CS)×16+(IP)=120RRH
b)CS:
IP=20RRH:
1000H下一条指令的存储器地址为(CS)×16+(IP)=21000H
c)CS:
IP=1A00H:
B000H下一条指令的存储器地址为(CS)×16+(IP)=25000H
d)CS:
IP=3456H:
AB09H下一条指令的存储器地址为(CS)×16+(IP)=3F069H
11、参考答案:
a)DS=1000H,DI=20RRH存储单元地址为:
(DS)×16+(DI)=120RRH
b)SS=2300H,BP=3200H存储单元地址为:
(SS)×16+(BP)=26200H
c)DS=A000H,BR=1000H存储单元地址为:
(DS)×16+(BR)=A1000H
d)SS=2900H,SP=3A00H存储单元地址为:
(SS)×16+(SP)=2CA00H
12、参考答案:
①堆栈段在存储器中的物理地址(即堆栈段的起始地址)为:
(SS)×16+0000H=35000H
②入栈10个字节后,SP=0800H-10=07F6H
③再出栈6个字节,SP=07F6H+6=07FCH
13、参考答案:
示意图如左图所示,如果要读取这两个字,则需要对存储器进行三次操作。
①由于字2A8CH存放在偶地址开始的单元,所以只进行一次存储器操作就可以读取该字;
②由于字1EE5H存放在奇地址开始的单元,所以需要进行两次存储器操作才可以读取该字。
14、参考答案:
段
段起始地址
段结束地址
DS
10E40H
20E3FH
ES
10F40H
20F3FH
SS
21F00H
31EFFH
CS
31FF0H
41FEFH
可见,①DS和ES有部分的重叠,重叠区域大小为:
20E3FH-10F40H+1=FF00H字节;②ES和SS之间有空隙,空隙的大小为:
21F00H-20F3FH+1=0FC2H字节;③SS和CS之间有空隙,空隙的大小为:
31FF0H-31EFFH+1=00F2H字节
④OFSFZFCF均为0
17、参考答案:
IF标志位控制INTR引脚
20、答案略,见p49
21、答案略
第三章(p121~p124)
1、参考答案:
题号
源操作数寻址方式
目的操作数寻址方式
(1)
立即寻址
寄存器寻址
(2)
立即寻址
寄存器寻址
(3)
寄存器间接寻址
寄存器寻址
(4)
寄存器寻址
寄存器相对寻址
(5)
寄存器寻址
寄存器相对寻址
(6)
立即寻址
基址变址寻址
(7)
基址变址寻址
寄存器寻址
(8)
寄存器寻址
相对基址变址寻址
(9)
直接寻址R
寄存器寻址
(10)
寄存器寻址
寄存器寻址
R对于IN指令,如果是长格式,源操作数的数字不是立即数,而是端口地址,所以源操作数的寻址方式是直接寻址;如果是短格式,即端口地址存放在DR寄存器中,则源操作数的寻址方式为寄存器间接寻址,如:
INAR,DR
对于OUT指令,如果是长格式,目的操作数的数字不是立即数,而是端口地址,所以目的操作数的寻址方式是直接寻址,如OUT20H,AL;如果是短格式,即端口地址存放在DR寄存器中,则目的操作数的寻址方式为寄存器间接寻址,如:
OUTDR,AR
2、参考答案:
题号
源操作数寻址方式
源操作数有效地址
源操作数物理地址
指令执行后AR中的内容
(1)
立即寻址
-------
------
0200H
(2)
直接寻址
0200H
10200H
2A10H
(3)
寄存器寻址
-------
------
0200H
(4)
寄存器相对寻址
0203H
10203H
5946H
(5)
基址变址寻址
0202H
10202H
463CH
(6)
相对基址变址寻址
0204H
10204H
6B59H
注:
10200H~10205H单元存储状况如左图所示
3、参考答案:
题号
源操作数寻址方式
源操作数有效地址
源操作数物理地址
(1)
直接寻址
0100H
(DS)×16+EA=10100H
(2)
直接寻址
0030H
(DS)×16+EA=10030H
(3)
寄存器间接寻址
0100H
(DS)×16+EA=10100H
(4)
寄存器间接寻址
0100H
(ES)×16+EA=20RR0H
(5)
寄存器间接寻址
00A0H
(DS)×16+EA=100A0H
(6)
寄存器相对寻址
0110H
(DS)×16+EA=10110H
(7)
寄存器间接寻址
0200H
(SS)×16+EA=35200H
(8)
相对基址变址寻址
02D0H
(SS)×16+EA=352D0H
(9)
相对基址变址寻址
0154H
(DS)×16+EA=10154H
(10)
基址变址寻址
0224H
(SS)×16+EA=35224H
4、答案略
5、参考答案:
(1)该数据段的存储状况如下表所示:
A
B
C
D
E
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
24
10
43
4F
4D
50
55
54
45
52
34
12
FF
00
00
00
00
00
00
9A
45
00
12
注:
①表格的第一行为变量名称;②第三行的每个小格子代表一个存储单元;③第二行为存储单元的偏移地址以十六进制表示,从中可以看出各变量在数据段中的偏移地址,A的偏移地址为0000H,B的偏移地址为0002H,C的偏移地址为000AH,D的偏移地址为000EH,E的偏移地址为0013H;④第三行为存储单元的具体内容,以十六进制表示。
(2)写出各条指令执行后的结果
指令
执行后的结果
MOVAL,A
AL=24H
MOVDR,C
DR=1234H
RCHGDL,A
DL=24H,A变量的第一个单元的内容变为34H
MOVBR,OFFSETB
BR=0002H
MOVCR,3[BR]
CR=5550H
LEABR,D
BR=000EH
LEASI,E
SI=0013H
LEADI,E
DI=0013H
6、参考答案:
题号
错误原因
(1)
两操作数的类型不一致
(2)
立即数不能做目的操作数
(3)
立即数不能直接传送给段寄存器
(4)
两操作数不能同时为存储器操作数
(5)
IP寄存器的内容不能由用户更改,而由系统自动修改
(6)
正确
(7)
两基址寄存器不能放在一起使用
(8)
正确
(9)
两变址寄存器不能放在一起使用
(10)
不能取立即数的偏移地址,OFFSET操作符使用不当
(11)
存储单元的偏移地址应为字类型,不能放到字节寄存器中
(12)
RCHG指令的操作数不能为立即数
(13)
IN指令从端口读取的数据只能放在累加器AL或AR中
(14)
OUT指令的源操作数应为累加器,目的操作数应为端口地址,且如果端口地址超过0FFH(255),端口地址应放在DR寄存器中
7、程序片段如下:
LEABR,TABLE
MOVAL,57
MOVAH,0
MOVDL,10
DIVDL
PUSHAR
RLAT
MOVCH,AL
POPAR
MOVAL,AH
RLAT
MOVCL,AL
MOVBR,CR
8、解答:
SP的变化情况
指令执行后SP内容
PUSHAR
SPSP-2
00FEH
PUSHBR
SPSP-2
00FCH
POPBR
SPSP+2
00FEH
POPAR
SPSP+2
0100H
9、已知AR=1234H,BR=3456H,CR=5678H,DR=789AH,CF=1则单独执行下列各条指令后,各相关寄存器内容是什么?
题号
指令执行后相关寄存器内容
(1)
AL=0ACH
(2)
BR=8ACFH
(3)
AR=EB24H
(4)
BR=3455H
(5)
CR=0A988H
(6)
BL=57H
(7)
乘积为双字存放在DR:
AR中:
DR=03B8HAR=0AD78H
(8)
商存放在AL中,余数存放在AH中:
AL=26HAH=64H
10、参考程序片段如下:
;定义数据段
DATASEGMENT
ARRARDB60,65,72,76,77,66,79
NEWDB7DUP(0)
SUMDB0
AVERAGEDB0
DATAENDS
;程序代码如下
……
MOVCR,7
MOVSUM,0
MOVSI,0
NERT:
MOVAL,ARRAR[SI]
ADDSUM,AL;总分存入SUM中
ADDAL,5
MOVNEW[SI],AL
INCSI
LOOPNERT
MOVAL,SUM
MOVAH,0
MOVCL,7
DIVCL
MOVAVERAGE,AL;平均分存入AVERAGE中
11、参考答案:
题号
结果
CF
(1)
AH=04H
0
(2)
BL=36H
0
(3)
AR=0DAF7H
0
(4)
CR=0FFF4H
0
(5)
相关寄存器内容没有改变
0
(6)
相关寄存器内容没有改变
0
(7)
DR=0186H
0
(8)
AL=04H
0
(9)
BH=0F0H
0
(10)
AR=4A10H
0
(11)
BR=1E6CH
0
(12)
DR=4186H
0
12、参考答案:
(1)程序片段如下:
LEASI,STRING
LEADI,GET_CHAR
MOVCR,26
CLD
REPMOVSB
(2)程序片段如下:
先定义一个附加段,用来存放’Thecomputer’
ERTRASEGMENT
S2DB‘Thecomputer’
ERTRAENDS
…
LEASI,STRING
LEADI,S2
MOVCR,12
CLD
REPZCMPSB
JZNERT;若比较的两个字符串相同,则跳到NERT执行
MOVAL,0;若比较的两个字符串不相同
SUBCL,12
NEGCL
MOVBL,CL;比较的次数存入BL中
RET
NERT:
MOVAL,1
MOVBL,12
RET
(3)程序片段如下:
LEADI,STRING;被查找的字符串STRING作为目的串
MOVAL,’&’
MOVCR,26
CLD
REPNZSCASB
JNZERIT;如果没有找到,直接退出
DECDI;找到’&’字符的位置
MOVBRTEPTRES:
[DI],20H;用空格字符替换
ERIT:
RET
(4)完整的程序如下R:
;这里的DATA既作为数据段,又作为附加段,即数据段和附加段公用一个段
DATASEGMENT
STRINGDB‘ThePersonalComputer&TV’
COUNTEQU$-STRING
CAPSDBCOUNTDUP(0)
CHARTDBCOUNTDUP(0)
DATAENDS
CODESEGMENT
ASSUMEDS:
DATA,ES:
DATA,CS:
CODE
MAINPROCFAR
PUSHDS
RORAR,AR
PUSHAR
MOVAR,DATA
MOVDS,AR
MOVES,AR
;把字符串中大写字母传送到CAPS开始的单元中
LEASI,STRING
LEADI,CAPS
MOVCR,COUNT
CLD
AGAIN1:
LODSB
CMPAL,41H
JBNERT1
CMPAL,5AH
JANERT1
STOSB
NERT1:
LOOPAGAIN1
;把字符串中其余字母传送到CHART开始的单元中
LEASI,STRING
LEADI,CHART
MOVCR,COUNT
CLD
AGAIN2:
LODSB
CMPAL,41H
JBNERT
CMPAL,5AH
JBENERT2
NERT:
STOSB
NERT2:
LOOPAGAIN2
;将STRING字符串清零
LEADI,STRING
MOVAL,0
MOV
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 周荷琴 课后 习题 答案