微机原理及接口技术李干林习题参考解答.docx
- 文档编号:27912550
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:46
- 大小:237.02KB
微机原理及接口技术李干林习题参考解答.docx
《微机原理及接口技术李干林习题参考解答.docx》由会员分享,可在线阅读,更多相关《微机原理及接口技术李干林习题参考解答.docx(46页珍藏版)》请在冰豆网上搜索。
微机原理及接口技术李干林习题参考解答
习题参考解答
1.1什么是微处理器、微型计算机、微型计算机系统?
参考答案:
将运算器和控制器集成在一块大规模集成电路芯片上作为中央处理部件,简
称为微处理器;
以微处理器为核心,再配上存储器、接口电路等芯片,构成微型计算机;
微型计算机系统由硬件和软件系统两大部分组成:
(1)硬件系统由微型计算机和外设组
成的计算机实体;
(2)软件系统是指为微型计算机运行的全部技术资料和各种程序,由系统软件和应用软件构成。
1.2什么是微型计算机的三种总线?
参考答案:
系统总线包含有三种不同功能的总线,即数据总线DB(DataBus)、地址总
线AB(AddressBus)和控制总线CB(ControlBus)。
“数据总线DB用于传送数据信息。
数据总线是双向三态形式的总线,即他既可以把
CPU勺数据传送到存储器或I/0接口等其它部件,也可以将其它部件的数据传送到CPU“地址总线AB'是专门用来传送地址的,由于地址只能从CPU专向外部存储器或I/
O端口,所以地址总线总是单向三态的。
“控制总线CB用来传送控制信号和时序信号。
1.3评估微型计算机的主要技术指标有哪些?
参考答案:
评估微型计算机的主要技术指标有:
⑴CPU的字长,决定计算机内部一次可以处理的二进制代码的位数;⑵内存储器容量与速度,内存储器容量是衡量它存储二进制信息量大小的一个重要指标,内存储器的速度用存取周期来衡量;⑶CPU指令执行时
间,反映CPU运算速度的快慢;⑷系统总线的传输速率等。
参考答案:
⑴100011B,23H
参考答案:
参考答案:
1.7
已知补码求出其真值和原码。
参考答案:
1.8
将下列十进制数转换为压缩和非压缩格式的BCD码。
参考答案:
⑴00010010B,0000000100000010B
⑵01010101B,0000010100000101B
⑶
⑷
1.9下列十进制数算术运算,试用8位二进制补码计算,并用十六进制数表示运算结
果,判断是否有溢出。
⑴35-45⑵80+50⑶-70-60⑷-20+(-60)
参考答案:
各数的补码:
[35]补=00100011B,[-45]补
[80]补=01010000B,[50]补=00110010B,
[-70]补补
[-20]补
35+(-45)
00100011B
80+50
01010000B
+00110010B
-70+(-60)
-20+(-60)
101111110B
G=0,Cs=0
CY=0,Cs=1
G=1,Cs=0
CY=1,Cs=1
OF=(C®CS=
OF=OCS=
OF=OCS=
OF=OCS=
0®0=0
0®1=1
1®0=1
1®1=0
没有溢出
有溢出
有溢出
没有溢出
⑴
⑵
⑶-70-60=01111110B=-126,结果不正确,有溢出,因为-130超出了8位补码的表示下限-128;
⑷
1.10分别写出下列字符串的ASCII码(十六进制表示)。
⑴3aB8⑵eF10⑶+5(0:
⑷Howareyou?
参考答案:
⑴⑵⑶2B3528303AH
⑷
2.18086CPU内部由哪两部分组成?
它们的主要用途是什么?
参考答案:
8086CPU内部按功能分执行单元EU和总线接口单元BIU。
执行单元的功能:
负责指令的执行。
同时向BIU输出数据(操作结果),并对寄存器和
标志寄存器进行管理。
在ALU中进行16位运算,数据传送和处理均在EUg制下进行。
总线接口单元的功能:
负责从内存或I/O端口取指令、取操作数和保存运算结果。
2.28086/8088CPU有哪些寄存器?
各有什么用途?
参考答案:
8086/8088CPU内部有14个16位的寄存器,按功能可分为:
通用寄存器
(8个)、段寄存器(4个)和控制寄存器(2个)。
⑴.通用寄存器组
EU中有4个16位的通用寄存器,即数据寄存器AX、BXCXDX
数据寄存器AX、BXCXDX—般用来存放数据,但它们都有各自的特定用途。
AX称为累加器,是最常用的寄存器。
它常用来存放算术逻辑运算中的操作数,而且一
些操作要在AX中完成,如乘法操作和除法操作。
此外,所有的I/O指令都使用累加器与
外设端口交换信息。
BX称为基址寄存器。
它常用来存放操作数在内存中数据段内的基地址。
CX称为计数器。
在设计循环程序时一般使用该寄存器存放循环次数。
DX称为数据寄存器。
在寄存器间接寻址的I/O指令中存放I/O端口地址;在做双字长乘除法运算时,DX与AX—起存放一个双字长操作数,其中DX存放高16位数。
(2).指针和变址寄存器
8086/8088CPU中,有一组4个16位寄存器,它们是基址指针寄存器BP,堆栈指针寄存器SP,源变址寄存器SI,目的变址寄存器DI。
这组寄存器存放的内容是某一段地址偏移量,用来形成操作数地址,主要在堆栈操作和变址运算中使用。
SP称为堆栈指针寄存器;BP称为基址指针寄存器;SI称为源变址寄存器;DI称为目的变址寄存器。
⑶.段寄存器CS、DSSSES
8086/8088有20位地址总线,一共可以寻址1M的空间。
而所有内部寄存器都是16
位的,只能直接寻址64KB,因此采用分段技术来解决。
将1MB的存储空间分成若干逻辑段,每段最长64KE,这些逻辑段在整个存储空间中可以浮动。
8086/8088定义4个独立的逻辑段,分别为:
代码段、数据段、堆栈段和附加数据段,将程序代码或数据分别放在这4个逻辑段中。
每个逻辑段的段地址分别放在对应的段寄存器中,代码或资料在段内的偏移地址由有关寄存器或立即数给出。
8086/8088的4个段寄存器:
1CS称为代码段寄存器,用来存储程序当前使用的代码段的段地址(起始地址)。
2DS称为数据段寄存器,用来存放程序当前使用的数据段的段地址。
3SS称为堆栈段寄存器,用来存放程序当前所使用的堆栈段的段地址。
4ES称为附加数据段寄存器,用来存放程序当前使用的附加数据段的段地址。
⑷.指令指针寄存器IP
IP称为指令指针寄存器,用来存放预取指令在代码段内的偏移地址。
⑸.标志寄存器F
F称为标志寄存器,是一个16位的寄存器,其中只用了9位。
分别为6个状态标志位和3个控制标志位。
2.38086/8088CPU中标志寄存器有几位状态位?
有几位控制位?
其含义各是什么?
参考答案:
标志寄存器是一个16位的寄存器,其中只用了9位。
分别为6个状态标志位和3个控制标志位
⑴状态标志位
状态标志位用来反映算术和逻辑运算结果的一些特征。
1CF:
进位标志位。
当进行加减运算时,若最高位发生进位或借位则CF=1否则CF
=00
2PF:
奇偶标志位。
当运算结果的低8位中含有偶数个1时,PF=1,否则PF=00
3AF:
辅助进位标志位。
加法或减法运算时,若结果的低字节的低4位向高4位有
进位或借位,则AF=1;否则AF=00
4ZF:
零标志位。
若当前的运算结果为0,则ZF=1;否则ZF=00
5SF:
符号标志位。
与运算结果的最高位相同,当运算结果的最高位为1时,SF=1;
否则为00
6OF:
溢出标志位。
当运算结果超出了带符号数的范围,即溢出时,0F=1;否则OF=0°
⑵控制标志位
控制标志位有3个,用来设置控制条件来控制CPU的操作,由程序设置或清除。
1TF:
跟踪标志位。
2IF:
中断允许标志位。
用来控制可屏蔽中断的控制标志。
若IF=1,允许CPU接受
可屏蔽中断请求;若IF=0,则禁止CPU回应可屏蔽中断请求。
IF的状态对非屏蔽中断及内部中断没有影响。
3DF:
方向标志位。
控制串操作指令用的标志。
2.4Intel8086CPU和8088CPU主要区别有哪些?
参考答案:
8086CPU与8088CPU的区别主要有以下4个方面:
⑴.内部结构
8086的指令队列有6B,而8088仅有4B。
它们的执行单元EU完全相同,而总线接口单元BIU却不完全相同。
8086CPU内、外部的数据总线(DB)都为16位,8088内部数据总线为16位,外部为8位。
⑵.引出线和内存组织
8086有一条高8位数据总线允许引出线bhe,它可以看做一条附加的地址线,用来访问内存的高字节,而Ao用来访问内存的低字节。
⑶.地址/数据复用线
8086的地址/数据复用线是16位Ad〜AD0;而8088仅有AD?
〜AD复用,A〜£仅作为地址线使用。
⑷.内存与I/O接口选通信号电平。
内存与I/O接口选通信号电平不同:
8086为M/k,即高电平进行存储器操作,低电
平进行I/O操作;而8088则相反,为10/M。
2.5逻辑地址和物理地址指的是什么?
如果已知逻辑地址为1200:
0ABCDH其物理地
址为多少?
参考答案:
把用段地址和偏移地址表示存储单元的地址称为逻辑地址,段地址和段内偏移地址经20位地址加法器生成的20位地址称为物理地址。
已知逻辑地址为1200:
0ABCDH其物理地址为12000H+0ABCDH=1CBCDH
2.6若CS为3000H,试说明现行代码段可寻址的存储空间的范围。
参考答案:
可寻址的存储空间的范围:
30000H+0000H〜30000H+FFFFH既:
30000HH3FFFFH
2.7设现行数据段位于存储器10000H到仆FFFH存储单元,DS段寄存器内容为多少?
参考答案:
一个逻辑段最大范围:
0000H〜FFFFH因此DS段寄存器内容为:
1000H参考答案:
2.9已知堆栈段寄存器SS=4000H堆栈指针SP=0100H试将数据56789ABCHI入堆栈,
画出进栈示意图。
最后栈顶SP=?
参考答案:
最后栈顶SP=400FCH
2.10试求出下列运算后的各个状态标志。
⑴1234H+6789H⑵23A5H-65C2H
参考答案:
⑴1234H+6789H=79BDHCF=0PF=1,AF=0,ZF=0,SF=0,OF=0
2.118088CPU工作在最小模式时。
⑴当CPU访问存储器时,要利用哪些信号?
(2)当CPU访问I/O时,要利用哪些信号?
参考答案:
⑴IO/M=0,A19/S16〜A16/S3,A15〜As,AD〜AD。
ALE读存储器时:
RD=0,DT/R=0(写存储器时:
WR=0,DT/R=1),den。
⑵IO/M=1,A9/S16〜A16/S3,A15〜As,AD〜AD0,ALE读IO端口时:
RD=0,DT/R=0(写IO端口时:
WR=0,DT/R=1),den。
2.12简要说明8086/8088的指令周期、总线周期、机器周期和时钟周期有何不同。
参考答案:
(1)指令周期由若干个机器周期组成,而机器周期时间又包含若干个时钟周期,总线周
期一般由4个时钟周期组成。
(2)机器周期和总线周期的关系是:
机器周期指的是完成一个基本操作的时间,这个基本操作有时可能包含总线读/写,因而包含总线周期,但是有时可能与总线读/写无关,所以,并无明确的相互包含关系。
2.13什么情况下插入Tw等待周期?
插入Tw多少,取决什么因素?
参考答案:
在T3状态,CPU采样READ线,若READ信号无效,插入TW犬态;插入Tw状态为一个至多个,直到READ信号有效,才进入T4状态。
2.14什么情况下会出现总线的空闲周期?
参考答案:
只有在8086CPI和存储器或I/O接口之间传输数据时,CPU才执行总线周期,当CPU不执行总线周期时(指令队列6个字节已装满,EU未申请访问存储器),总线接口部件不和总线打交道,就进入了总线空闲周期T。
在空闲周期中,虽然CPU对总线进行空操作,但是CPU内部操作仍然进行,即EU部件在工作。
所以说,总线空操作是总线接口部件BIU对总线执行部件EU的等待。
3.1指出下列传送类指令源操作数的寻址方式。
(1)MOVSI,
120
(2)MOV[BX]
DX
(3)MOVAX,
100[BX][DI]
⑷MOVDI
[BX+100]
(5)MOVAX,
[1000H]
(6)MOVAX
80H
(7)MOVAX,
[BX]
(8)MOVCX
[BX][SI]
⑴MOVSI,[BX]
(3)MOVAX,[BP][SI]
(5)ADDAX,[1000H]
(7)ADDAX,ES:
[BX]
参考答案:
(1)DSX16+BX
(3)SSX16+BF+SI
(5)DSX16+1000H
(7)ESX16+BX
3.3指出下列指令中的错误
(1)MOVBX,AL
(3)MOV100,CL
(5)PUSH1234H
(7)XCHGAH,12H
(9)ADD[BX],10
参考答案:
参考答案:
(1)
立即数寻址
(2)
寄存器寻址
⑶
基址加变址寻址
(4)
基址寻址
⑸
直接寻址
(6)
立即数寻址
⑺
基址寻址
(8)
基址加变址寻址
3.2指出下列指令中存储器操作数物理地址的计算表达式
(2)MOV8[DI],DX
(4)ADDDI,[BX+100]
(6)SUBAX,[BX+DI+80H]
(8)DECWORDPTR[SI]
⑵DSX16+DI+8
⑷DSX16+BX+100
(6)DSX16+BX+DI+80H
(8)DSX16+DI
⑵MOVCS,AX
⑷MOV[BX],[1000H]
(6)MOVCS,1200H
(8)INC[2000H]
(10)OUT258H,AX
(1)源操作数和目的操作数寄存器类型不匹配
(2)代码段寄存器CS不允许赋值
(3)立即数不能做目的操作数
(4)内存单元之间不能直接传送
(5)立即数不能做堆栈指令操作数
(6)代码段寄存器CS不允许赋值
(7)立即数不能做交换指令操作数
(8)字类型还是字节类型不明确
(9)目的操作数类型不明确
(10)端口地址大于8位二进制数,需要通过DX专送。
3.4设(SP)=3000H,(AX)=1234H,(BX)=5678H,指出执行下列指令后相关寄存器的内容
PUSHAX
PUSHBX
POPAX
POPBX
参考答案:
执行后,(AX)=5678H,(BX)=1234H,(SP)=3000Ho
3.5若AX=1234HBX=3456H当执行SUBAX,BX指令后,求AX和标志寄存器CF、AF、SF、
ZF和OF标志位的值?
参考答案:
(AX)=0DDDEHCF=1,AF=1,SF=1,ZF=0,OF=0
3.6设(AH)=0F6H,(AL)=90H,问执行SUBAHAL指令后,AX中的值及标志寄存器CF、AF、SF、ZF、PF和OF标志位的值?
参考答案:
(AX)=6690H,CF=QAF=0,SF=0,ZF=0,OF=0PF=1。
3.7设(BX)=1000H,(DI)=0050H,执行LEABX,[BX+SI-0200H]后,(BX)=?
参考答案:
(BX)=0E50H
3.8已知(DS)=2000H,(SS)=5000H,(AX)=0012H,(BX)=0340H,(CX)=0781H,
(BP)=0035H,(SI)=0100H,(DI)=0300H,(20440H)=2104H,(20742H)=0E2AH(20372H)=6FD3H试求单独执行下列指令后的结果。
参考答案:
(5)XCHGCX,32H[BX]
3.9下列指令完成什么功能?
(1)NEGBX
(2)MULBL
(3)DIVCL
(4)DECAX
(5)SBBAX,CX
(6)INCDL
(7)ADCAX,1000H
(8)SARAL,CL
(9)DAA
参考答案:
(10)CBW
(1)将BX中的内容求补(正数变负数或负数变正数,绝对值不变)后送回BX
(2)BLXAL,结果送AX
(3)AX/CL,商存于AL,余数存于AH
⑷AX中值减1,结果送回ALo
(5)AX中的值减去BX中的值再减去CF中的值,结果送回AX
(6)DL中的值当无符号数加1,结果送回DLo
(7)AX中的内容加上1000H后,再加上CF勺值,结果送回AX
(8)AL中的值向右移,移动位数为CL中的值,AL左边补充符号位的值。
(9)将AL中的两位BC码加法运算的结果调整为两位压缩型十进制数,仍保留在AL
中。
(10)将AL的最高有效位扩展至AH
3.10已知AX=3405HBX=0FE1HCX=0002HDX=2A3E,求下列每条指令执行后目的操作数的结果。
(1)ANDAH,BL
(2)ORCL,20H
(3)NOTDX
⑷XORCX,0FE3H
(5)TESTAL,80H
(6)CMPBX,OF123H
(7)SHRDX,CL
(8)SARAL,CL
(9)RCLAL,1
参考答案:
(10)RORDX,CL
(1)(AH)=02H
⑵(CL)=22H
⑶(DX)=0D5B1H
⑷(CX)=0FE1H
(5)(AL)=05H
(6)(BX)=OFE1H
(7)(DX)=0A8FH
(8)(AL)=01H
(9)(AL)=0AH
(10)(DX)=8A8FH
3.11设(AX)=54D1H执行下列程序段指令后,求相应的结果
MOVBL,AH
参考答案:
MOVCL,AL
ADDBL,100
;BL=0B8H
XCHGAL,BL
;AL=0B8H
SUBAL,CL
;AX=54E7H
JSHH
ANDAL,0FH
?
JMPNEXT
MULBL
HLT
3.13已知当前数据段中有一个十进制数字0〜9的7段ASCII表,其数值依次为30H〜39H,其首地址为2000H要求用XLAT旨令将十进制数46转换成相应的7段代码值,存到AX寄存器中,试写出相应的程序段。
参考答案:
MOVBX,2000H
MOVAL,4
XLAT
MOVAH,AL
MOVAL,6
XLAT
HLT
3.14设有程序段:
DATASEGMENT
STRINGDB‘Todayissaturdy!
NEQU$-STRING
DATAENDS
试用字符串指令完成以下功能:
⑴把该字符串传送到附加段中偏移量为CHAR开始的内存单元中;
⑵检查该字符串是否有“!
”字符,若有将找到的第一个“!
”用“?
”将其替换参考答案:
⑴CLD
MOVCX,N
LEASI,STRING
LEADI,CHAR1
REPMOVSB
⑵LEADI,STRING
MOVAL,‘!
’
MOVCX,N
CLD
REPNESCASB
MOVAL,‘?
’
MOV[DI],AL
3.15阅读程序段,说明其完成的功能。
MOVCX,100
MOVDL,0
MOVBX,1000H
LP1:
MOVAL,[BX]
CMPAL,0
JNZLP2
INCDL
LP2INCBX
LOOPLP1
MOV[BX],DL
HLT
参考答案:
程序段的功能:
统计从数据段偏移地址1000H的100个字节单元内容0的个数,并将统计结果存入数据段偏移地址为1064H勺内存单元。
3.16试编程完成(AL)X7/4的程序段,AL中的数为有符号数。
参考答案:
MOVBL,7
IMULBL
MOVCL,2
SARAX,CL
3.17使用最少指令,实现下述要求的功能。
⑴BL的高4位置1;
⑵AL的低4位取反;
⑶DL中的高4位移到低4位,低4位移到高4位;
⑷AH的低4位移到高4位,低4位清0。
参考答案:
⑴ORBL,0F0H
⑵XORAL,0FH
⑶MOVCL,4
RORAHCL;
⑷MOVCL,4
SHLAHCL。
3.18在DS2000H为首址的内存数据段中,存放了10个16位带符号数,试编程将其中最大和最小的带符号数找出来,分别存放到以DS:
3000HffiDS:
3002H内存单元中。
参考答案:
MOVSI,2000H
MOVAX,[SI];AX中存放最大数
MOVBX,[SI];BX中存放最小数
MOVCX,9
FIND:
ADDSI,2
MOVDX,[SI]
CMPAX,DX
JGLOP1
MOVAX,DX
L0P1:
CMPBXDX
JLLOP2
MOVBX
DX
LOP2LOOPFIND
MOVSI
3000H
MOV[SI]
AX
ADDSI
2
MOV[SI]
BX
HLT
3.19设中断类型N=8,中断服务程序的起始地址为3000:
0100H,它在中断向量表中如何存放?
参考答案:
NX4=8X4=32=20H
DS:
0020H存放00H;
DS:
0021H存放01H;
DS:
0022H存放00H;
DS:
0023H存放30Ho
4.1下列变量各占多少字节?
M1DW12,78A3H
M2DB3DUP⑺,0AH0DH‘$'
M3DB‘HOWDOYOUDO?
参考答案:
变量M1占4个字节,变量M2占6个字节,变量M3占14个字节
4.2某程序设置的数据区如下:
DATASEGMENT
ORG1000H
D1DB11,2DH,56H
D2DW32,0ABD3H7634H
D3DWD1
D4DB$-D1
D5DB4DUP(?
)
D6DB‘34FS
DATAENDS
画出该数据段内容再内存中存放形式(要求用十六进制补码表示,按字节组织)
参考答案:
D1
0B
2D
56
D2
20
00
D3
AB
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 李干林 习题 参考 解答