微型计算机与借口技术习题答案第4版文档格式.docx
- 文档编号:19182587
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:44
- 大小:188.88KB
微型计算机与借口技术习题答案第4版文档格式.docx
《微型计算机与借口技术习题答案第4版文档格式.docx》由会员分享,可在线阅读,更多相关《微型计算机与借口技术习题答案第4版文档格式.docx(44页珍藏版)》请在冰豆网上搜索。
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汇编语言(AssemblyLanguage):
是一种符号语言,它和机器语言几乎一一对应,在书写时使用字符串组成的助记符(Mnemonic)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。
使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,如微软的宏汇编程序MASM.EXE。
汇编程序把汇编语言翻译成机器语言的过程称为汇编。
汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。
但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。
6指令(Instruction):
指令是能被计算机识别并执行的二进制代码,它规定了计算机能完成的某一操作。
一条指令通常由两个部分组成:
操作码+操作数。
操作码:
指明该指令要完成的操作的类型或性质,如取数、做加法或输出数据等。
操作数:
指明操作对象的内容或所在的存储单元地址(地址码),操作数在大多数情况下是地址码,地址码可以有0~3个。
5、参考答案:
题号
标志位
值
(1)
ZF
如果相等,ZF=1;
反之,ZF=0
(2)
SF
如果为正,SF=0;
反之,SF=1
(3)
OF
如果溢出,OF=1;
反之,OF=0
(4)
PF
如果结果低8位1的个数为偶数,PF=1;
反之,PF=0
(5)
CF
如果相减的第一个数小于第二个数,CF=1;
反之,CF=0
(6)
IF
如果允许中断,IF=1;
如果禁止中断,IF=0
6、答案略,见p36~38
设存储单元地址由左向右递增,每个字符以它的ASCII码形式存放存储单元中,则字符串‘Whattimeisit?
’在内存中的存储状况如下(以十六进制表示):
576861742074696D652069732069743F
a)DW1234H
b)DWA122H
c)DWB100H
在内存中的分布为(设存储单元地址由左向右递增,存储单元的阿内容以十六进制表示):
341222A100B1
段起始地址
段结束地址
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
a)CS:
IP=1000H:
2000H下一条指令的存储器地址为(CS)×
16+(IP)=12000H
b)CS:
IP=2000H:
1000H下一条指令的存储器地址为(CS)×
16+(IP)=21000H
c)CS:
IP=1A00H:
B000H下一条指令的存储器地址为(CS)×
16+(IP)=25000H
d)CS:
IP=3456H:
AB09H下一条指令的存储器地址为(CS)×
16+(IP)=3F069H
a)DS=1000H,DI=2000H存储单元地址为:
(DS)×
16+(DI)=12000H
b)SS=2300H,BP=3200H存储单元地址为:
(SS)×
16+(BP)=26200H
c)DS=A000H,BX=1000H存储单元地址为:
16+(BX)=A1000H
d)SS=2900H,SP=3A00H存储单元地址为:
16+(SP)=2CA00H
①堆栈段在存储器中的物理地址(即堆栈段的起始地址)为:
16+0000H=35000H
②入栈10个字节后,SP=0800H-10=07F6H
③再出栈6个字节,SP=07F6H+6=07FCH
示意图如左图所示,如果要读取这两个字,则需要对存储器进行三次操作。
①由于字2A8CH存放在偶地址开始的单元,所以只进行一次存储器操作就可以读取该字;
②由于字1EE5H存放在奇地址开始的单元,所以需要进行两次存储器操作才可以读取该字。
段
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、答案略,见p50
21、答案略
第三章(p120~p123)
源操作数寻址方式
目的操作数寻址方式
立即寻址
寄存器寻址
寄存器间接寻址
寄存器相对寻址
基址变址寻址
(7)
(8)
相对基址变址寻址
(9)
直接寻址*
(10)
*对于IN指令,如果是长格式,源操作数的数字不是立即数,而是端口地址,所以源操作数的寻址方式是直接寻址;
如果是短格式,即端口地址存放在DX寄存器中,则源操作数的寻址方式为寄存器间接寻址,如:
INAX,DX
对于OUT指令,如果是长格式,目的操作数的数字不是立即数,而是端口地址,所以目的操作数的寻址方式是直接寻址,如OUT20H,AL;
如果是短格式,即端口地址存放在DX寄存器中,则目的操作数的寻址方式为寄存器间接寻址,如:
OUTDX,AX
源操作数有效地址
源操作数物理地址
指令执行后AX中的内容
-------
------
0200H
直接寻址
10200H
2A10H
0203H
10203H
5946H
0202H
10202H
463CH
0204H
10204H
6B59H
注:
10200H~10205H单元存储状况如左图所示
3、参考答案:
0100H
16+EA=10100H
0030H
16+EA=10030H
(ES)×
16+EA=20100H
00A0H
16+EA=100A0H
0110H
16+EA=10110H
16+EA=35200H
02D0H
16+EA=352D0H
0154H
16+EA=10154H
0224H
16+EA=35224H
(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
43
4F
4D
50
55
54
45
52
34
FF
9A
①表格的第一行为变量名称;
②第三行的每个小格子代表一个存储单元;
③第二行为存储单元的偏移地址以十六进制表示,从中可以看出各变量在数据段中的偏移地址,A的偏移地址为0000H,B的偏移地址为0002H,C的偏移地址为000AH,D的偏移地址为000EH,E的偏移地址为0013H;
④第三行为存储单元的具体内容,以十六进制表示。
(2)写出各条指令执行后的结果
指令
执行后的结果
MOVAL,A
AL=24H
MOVDX,C
DX=1234H
XCHGDL,A
DL=24H,A变量的第一个单元的内容变为34H
MOVBX,OFFSETB
BX=0002H
MOVCX,3[BX]
CX=5550H
LEABX,D
BX=000EH
LEASI,E
SI=0013H
LEADI,E
DI=0013H
错误原因
两操作数的类型不一致
立即数不能做目的操作数
立即数不能直接传送给段寄存器
两操作数不能同时为存储器操作数
IP寄存器的内容不能由用户更改,而由系统自动修改
正确
两基址寄存器不能放在一起使用
两变址寄存器不能放在一起使用
不能取立即数的偏移地址,OFFSET操作符使用不当
(11)
存储单元的偏移地址应为字类型,不能放到字节寄存器中
(12)
XCHG指令的操作数不能为立即数
(13)
IN指令从端口读取的数据只能放在累加器AL或AX中
(14)
OUT指令的源操作数应为累加器,目的操作数应为端口地址,且如果端口地址超过0FFH(255),端口地址应放在DX寄存器中
7、程序片段如下:
LEABX,TABLE
MOVAL,57
MOVAH,0
MOVDL,10
DIVDL
PUSHAX
XLAT
MOVCH,AL
POPAX
MOVAL,AH
MOVCL,AL
MOVBX,CX
8、解答:
SP的变化情况
指令执行后SP内容
SPSP-2
00FEH
PUSHBX
00FCH
POPBX
SPSP+2
9、已知AX=1234H,BX=3456H,CX=5678H,DX=789AH,CF=1则单独执行下列各条指令后,各相关寄存器内容是什么?
指令执行后相关寄存器内容
AL=0ACH
BX=8ACFH
AX=EB24H
BX=3455H
CX=0A988H
BL=57H
乘积为双字存放在DX:
AX中:
DX=03B8HAX=0AD78H
商存放在AL中,余数存放在AH中:
AL=26HAH=64H
结果
AH=04H
BL=36H
AX=0DAF7H
CX=0FFF4H
相关寄存器内容没有改变
DX=0186H
AL=04H
BH=0F0H
AX=4A10H
BX=1E6CH
DX=4186H
(1)程序片段如下:
LEASI,STRING
LEADI,GET_CHAR
MOVCX,26
CLD
REPMOVSB
(2)程序片段如下:
先定义一个附加段,用来存放’Thecomputer’
EXTRASEGMENT
S2DB‘Thecomputer’
EXTRAENDS
…
LEADI,S2
MOVCX,12
REPZCMPSB
JZNEXT;
若比较的两个字符串相同,则跳到NEXT执行
MOVAL,0;
若比较的两个字符串不相同
SUBCL,12
NEGCL
MOVBL,CL;
比较的次数存入BL中
RET
NEXT:
MOVAL,1
MOVBL,12
(3)程序片段如下:
LEADI,STRING;
被查找的字符串STRING作为目的串
MOVAL,’&
’
REPNZSCASB
JNZEXIT;
如果没有找到,直接退出
DECDI;
找到’&
’字符的位置
MOVBYTEPTRES:
[DI],20H;
用空格字符替换
EXIT:
RET
(4)完整的程序如下*:
;
这里的DATA既作为数据段,又作为附加段,即数据段和附加段公用一个段
DATASEGMENT
STRINGDB‘ThePersonalComputer&
TV’
COUNTEQU$-STRING
CAPSDBCOUNTDUP(0)
CHARTDBCOUNTDUP(0)
DATAENDS
CODESEGMENT
ASSUMEDS:
DATA,ES:
DATA,CS:
CODE
MAINPROCFAR
PUSHDS
XORAX,AX
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVES,AX
;
把字符串中大写字母传送到CAPS开始的单元中
LEA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 借口 技术 习题 答案