微机课后习题答案.docx
《微机课后习题答案.docx》由会员分享,可在线阅读,更多相关《微机课后习题答案.docx(24页珍藏版)》请在冰豆网上搜索。
微机课后习题答案
第1章作业答案
1.1微处理器.微型盘算机和微型盘算机体系三者之间有什么不合?
把CPU(运算器和掌握器)用大范围集成电路技巧做在一个芯片上,即为微
处理器.微处理器加上必定命量的存储器和外部装备(或外部装备的接口)构成了
微型盘算机.微型盘算机与治理.保护盘算机硬件以及支撑运用的软件相联合就形
成了微型盘算机体系.
1.2CPU在内部构造上由哪几部分构成?
CPU应当具备哪些重要功效?
CPU重要由起运算器感化的算术逻辑单元.起掌握器感化的指令存放器.指
令译码器.可编程逻辑阵列和标记存放器等一些存放器构成.其重要功效是进行算
术和逻辑运算以及掌握盘算机按照程序的划定主动运行.
1.3微型盘算机采取总线构造有什么长处?
采取总线构造,扩大了数据传送的灵巧性.削减了连线.并且总线可以尺度
化,易于兼容和工业化临盆.
在构造上有什么不合之处?
假如一个体系的数据和地址合
用一套总线或者合用部分总线,那么要靠什么来区分地址和数据?
数据总线是双向的(数据既可以读也可以写),而地址总线是单向的.
8086CPU为了削减芯片的引脚数目,采取数据与地址线复用,既作数据总线也作为
地址总线.它们重要靠旌旗灯号的时序来区分.平日在读写数据时,老是先输出地址
(指定要读或写数据的单元),过一段时光再读或写数据.
第2章功课答案
2.1IA-32构造微处理器直至Pentillm4,有哪几种?
80386.30486.Pentium.PentiumPro.PeruiumII.PentiumIII.Pentium4.
2.6IA-32构造微处理器有哪几种操纵模式?
IA一32构造支撑3种操纵模式:
呵护模式.实地址模式和体系治理模式.操
作模式肯定哪些指令和构造特征是可以拜访的.
2构造微处理器的地址空间若何形成?
由段存放器肯定的段基地址与各类寻址方法肯定的有用地址相加形成了线性地
址.若末启用分页机制,线性地址即为物理地址;若启用分页机制,则它把线性地
址转为物理地址.
2.158086微处理器的总线接口部件由哪几部分构成?
8086微处理器中的总线接口单元(BIU)负责CPU与存储器之间的信息传
送.具体地说,BIU既负责从内存的指定部分掏出指令,送至指令队列中列队
(8086的指令队列有6个字节,而8088的指令队列只有4个字节);也负责传送执
行指令时所需的操纵数.履行单元(EU)负责履行指令划定的操纵.
2.16段存放器CS=120OH,指令指针存放器IP=FFOOH,此时,指令的物理地址为
若干?
指令的物理地址=12000H+FFOOH=21FOOH
第3章作业答案
.
(1)MOVSI,30O
(2)MOVCX,DATA[DI]
(3)ADDAX,[BX][SI]
(4)ANDAX,CX
(5)MOV[BP],AX
(6)PUSHF
(l)源操纵数为立刻寻址,目标操纵数为存放器寻址.
(2)源操纵数为变址存放器加位移量寻址,目标操纵数为存放器寻址.
(3)源操纵数为基址加变址寻址,目标操纵数为存放器寻址.
(4)源操纵数和目标操纵数都为存放器寻址.
(5)源操纵数为存放器寻址,目标操纵数为存放器间接寻址.
(6)为客栈操纵.
3.2试述指令MOVAX,2000H和MOVAX,DSz[2000H]的差别.
解:
前一条指令是立刻寻址,即把立刻数2000H传送至存放器AX.后一条指令
是直接寻址,是把数据(DS)段中的地址为200OH单元的内容传送至存放器AX.
3.3写出以下指令中内存操纵数的地点地址.
(1)MOVAL,[BX+10]
(2)MOV[BP+10],AX
(3)INCBYTEPTR[SI十5]
(4)MOVDL,ES:
[BX+SI]
(5)MOVBX,[BP+DI+2]
(1)数据段BX+10单元.
(2)客栈段BP+10单元.
(3)数据段SI+5字节单元.
(4)附加段(ES段)BX+SI单元.
(5)客栈段BP+DI+2单元.
断下列指令书写是否准确.
(1)MOVAL,BX
(2)MOVAL,CL
(3)INC[BX]
(4)MOV5,AL
(5)MOV[BX],[SI]
(6)M0VBL,OF5H
(7)MOVDX,2000H
(8)POPCS
(9)PUSHCS
(l)不准确,AL与BX数据宽度不合.
(2)准确.
(3)不准确,因为不明白是增量字节照样字.
(4)不准确,立刻数不克不及作为目标操纵数.
(5)不准确,因为不明白要传送的是字节照样字.
(6)准确.
(7)准确.
(8)不准确,CS不克不及作为:
pop指令的操纵数.
(9)不准确,CS不克不及作为PUSH指令的操纵数.
钱指针SP的初值为1000H,AX=2000H,BX=3000H,试问:
(1)履行指令PUSHAX后SP的值是若干?
(2)再履行PUSHBX及POPAX后,SP.AX和BX的值各是若干?
(1)SP=OFFEH.
(2)SP=OFFEH;AX=3000H,BX=3000H.
要想完成把[3000H]送[2000H]中,用指令:
MOM[200OH],[300OH]是否准确?
假如不准确,应当用什么办法实现?
解:
不准确.准确的办法是:
MOVAL,[300OH]
MOV[2000H],AL
假如想从200中减去AL中的内容,用SUB200,AL是否准确?
假如不准确,应当
用什么办法?
解:
不准确.准确的办法是:
MOVBL,200
SUBBL,AL
3.8试用两种办法写出从8OH端口读入信息的指令.再用两种办法写出从4OH口输
出10OH的指令.
(1)INAL,80H
(2)MOVDX,8OH
INAL,DX
(3)MOV,AL,lOOH
OUT40H,AL
4)MOVAL,10OH
MOVDX,4OH
OUTDX,AL
3.9假如:
AL=20H,BL=1OH,当履行CMPAL,BL后,问:
(1)AL.BL中的内容是两个无符号数,比较成果若何?
影响哪儿个标记位?
(2)AL.BL中的内容是两个有符号数,成果又若何,影响哪几个标记位?
(l)AL=2OH,BL=1OH,O=0,S=0,Z=0,A=0,P=0,C=0.
(2)因为两个都是符号正数,其成果与(l)雷同.
×10,有哪几种办法,试编写出各自的程序段?
(1)运用乘法指令:
MOVBL,10
MULBI,
(2)运用移位指令:
SHLAL,1
MOVBL,AL
SHLAL,2
ADDAL,BL
(3)运用加法指令:
ADDAL,AL
MOVBL,AL
ADDAL,AL
ADDAL,AL
ADDAL,BL
3.118086汇编说话指令的寻址方法有哪几类?
哪种寻址方法的指令履行速度最快?
解:
寻址方法分为:
立刻数寻址方法.存放器操纵数寻址方法和存储器操纵数寻
址方法.个中,存放器操纵数寻址方法的指令履行速度最快.
3.12在直接寻址方法中,一般只指出操纵数的偏移地址,那么,段地址若何肯定?
如
果要用某个段存放器指出段地址,指令中应当若何暗示?
默认的数据拜访,操纵数在DS段;客栈操纵在SS段;串操纵源操纵数(SI)在DS段,
目标操纵数(DI)在ES段;用BP作为指针在SS段.假如要显式地指定段地址,则在操纵数中划定段存放器.例如:
MOVAX,ES:
(BX+10H)
存放器间接寻址方法中,假如指令中没有具体指明段存放器,那么若何肯定
段地址?
在存放器间接寻址方法中,假如指令中没有具体指明段存放器,段地址是
隐含商定的,也就是隐含地选择段存放器.如操纵类型为指令,则指定代码段寄
存器CS,如操纵类型为客栈操纵,则指定堆找段存放器SS,…,如表3-1中所示.
当须要超出约准时,通经常运用段替代前缀加冒号":
"来暗示段超出,它许可程序设
计者偏离任何商定的段.
例如:
MOVES:
〔BX],AX
这时数据将从存放器EAX传送至附加段中由EBX寻址的存储单元,而不是传送
到数据段中.
3.14采取存放器间接寻址方法时,BX.BP.SI.DI分离针对什么情形来运用?
这4个
存放器组合间接寻址时,地址是如何盘算的?
请举例解释.
解:
在存放器间接寻址方法下,BX和BP作为间址存放器运用,而SI.DI作为
变址存放器运用.除BP间址默认的段为客栈段,其他的都默以为数据段.它们
都可以单独运用,或加上偏移量或组合运用.如:
[BX+n]
LBP+n]
[SI+n]
[DI+n]
[BX+SI+n]
[BX+DI+n]
[BP+SI+n]
[BP+DI+n]
S=2100H,SS=5200H,BX=1400H,BP=6200H,解释下面两条指令所进行
的具体操纵:
MOVBYTEPTR[BP],200
MOVWORDPTR[BX],2000
解:
前一条指令是把立刻数(应是字节)200,传送至客栈段(BP的默认段〉偏移
量由BP划定的字节单元,地址为:
52000H+620OH=58200H
第二条指令是把立刻数.2000,传送至数据段(BX的默认段)偏移量由BX划定的
字单元,地址为:
21000H+1400H=22400H.
3.16运用堆钱操纵指令时要留意什么问题?
传送指令和交流指令在涉及内存操纵数
时应当分离要留意什么问题?
解:
运用客栈指令可以把内存单元作为一个操纵数(从内存到内存).但客栈
固定在客栈段且只能由SP指向.且客栈操纵要修正堆核指针.MOV指令不克不及实
现内存单元间的数据传送.XCHG指令是交流,有一个操纵数必须是存放器.
这些指令中哪些是准确的?
哪些是错误的?
若是错误的,请解释原因.
(1)XCHGCS,AX
(2)MOV[BX],[1000]
(3)XCHGBX,IP
(4)PUSHCS
(5)POPCS
(6)INBX,DX
(7)MOVBYTE[BX],100O
(8)MOVCS,[1000]
(l)错误,CS不克不及交流.
(2)错误,MOV指令不克不及在内存间传送.
(3)错误,IP不克不及交流.
(4)错误,CS可以作为PUSH指令的操纵数.
(5)错误,CS可以作为POP指令的操纵数.
(6)错误,IN指令的目标操纵数是累加器.
(7)错误,目标操纵数是字节单元.
(8〉错误,CS不克不及作为MOV指令的目标操纵数.
3.18以下是格雷码的编码表,
O0000
10001
20011
30010
40110
50111
60101
70100
81100
请用换码指令和其他指令设计一个程序段,以实现由格雷码向ASCII码的转换.
MOVBX,TABLE
MOVSI,ASCII_TAB
MOVAL,0
MOVCX,10
TRAN:
XLATTABLE
MOVDL,AL
ADDDL,30H
MOV[SI],DL
INCAL
LOOPTRAN
3.19运用乘法指令时,特殊要留意先断定是用有符号数乘法指令照样用无符号数乘
法指令,这是为什么?
解:
因为有符号数和无符号数,其数的乘法是一样的.但成果的符号取决于两
个操纵数的符号.
3.20字节扩大指令和字扩大指令一般用在什么场合?
举例解释.
解:
重要用于字节相除和字相除之前,把被除数扩大为两倍宽度的操纵数.
3.21什么叫BCD码?
什么叫组合的BCD码?
什么叫非组合的BCD码?
8086汇编说话在对
BCD码进行加.减.乘.除运算时,采取什么办法?
解:
BCD码为十进制编码的二进制数.组合的BCD数是把两位BCD加在一个字节
中,高位的在高4位.非组合的BCD码是把一位BCD数放在一个字节的低4位,高4位
为0.8086在BCD加.减和乘法运算今后用BCD调剂指令把成果调剂为准确的BCD
数.在BCD除法之前先用BCD调剂指令再做除法.
3.22用通俗运算指令履行BCD码运算时,为什么要进行十进制调剂?
具体地讲,在
进行BCD码的加.减.乘.除运算时,程序段的什么地位必须加上十进制调剂指令?
因为8086指令把操纵数作为二进制数进行二进制运算,要得到准确的BCD成果,须要进行调剂.在加.减.乘法指令之后加上BCD调剂指令,而在除法指令之前先用BCD调剂指令再用除法指令.
第4章功课答案
4.1鄙人列程序运行后,给响应的存放器及存储单元填入运行的成果:
MOVAL,1OH
MOVCX,100OH
MOVBX,2000H
MOV[CX],AL
XCHGCX,BX
MOVDH,[BX]
MOVDL,01H
XCHGCX,BX
MOV[BX],DL
HLT
解:
存放器及存储单元的内容如下:
AL=1OH
BL=OOH
BH=2OH
CL=OOH
CH=1OH
DH=1OH
(10O0H)=lOH
(200OH)=0lH
2.请求同题4.1,程序如下:
MOVAL,50H
MOVBP,100OH
MOVBX,200OH
MOV[BP],AL
MOVDH,20H
MOV[BX],DH
MOVDL,OlH
MOVDL,[BX]
MOVCX,300OH
HLT
解:
存放器及存储单元的内容如下:
AL=5OH
BL=OOH
BH=20H
CL=OOH
CH=30H
DL=20H
DH=2OH
BP=100OH
(10OOH)=5OH
(20OOH)=20H
4.3自1000H单元开端有一个100个数的数据块,若要把它传送到自200OH开端的存
储区中去,可以采取以下3种办法实现,试分离编制程序以实现数据块的传送.
(l)不必数据块传送指令
(2)用单个传送的数据块传送指令
(3)用数据块成组传送指令.
(1)LEASI,1OOOH
LEADI,200OH
MOVCX,100
L1:
MOVAX,[SI]
MOV[DI],AX
LOOPLl
HLT
(2)LEASI,100OH
LEADI,2000H
MOVCX,100
CLD
L1:
MOVSB
LOOPL1
HLT
(3)LEASI,100OH
LEADI,200OH
MOVCX,100
CLD
REPMOVSB
HLT
4.4运用变址存放器,编写一个程序,把自1000H单元开端的100个数传送到自1070H
开端的存储区中去.
LEASI,100OH
LEADI,1070H
MOVCX,100
CLD
REPMOVSB
HLT
4.5请求同题4.4,源地址为2050H,目标地址为2000H,数据块长度为50.
LEASI,205OH
LEADI,200OH
MOVCX,50
CLD
REPMOVSB
HLT
4.6编写一个程序,把自100OH单元开端的100个数传送'至105OH开端的存储区中
(留意:
数据区有重叠).
LEASI,100OH
LEADI,1050H
ADDSI,63H
ADDDI,63H
MOVCX,100
STD
REPMOVSB
HLT
4.7在自0500H单元开端,存有100个数.请求把它传送到1000H开端的存储区中,
但在传送进程中要检讨数的值,碰到第一个零就停滞传送.
LEASI,050OH
LEADI,10OOH
MOVCX,100
N1:
MOVAL,[SI]
CMPAL,0
JZN2
MOV[DI],AL
INCSI
INCDI
LOOPN1
N2:
HLT
4.14若在0500H单元中有一个数
(1)运用加法指令把它乘2,且送回原存储单元(假定X×2后仍为一个字节);
(2)X×4;
(3)X×10(假定X×l0≤255).
(1)LEABX,050OH
MOVAL,[BX]
ADDAL,AL
MOV[BX],AL
(2)LEABX,0500H
MOVAL,[BX]
ADDAL,AL
ADDAL,AL
MOV[BX],AL
(3)LEABX,050OH
MOVAL,[BX]
ADDAL,AL
MOVDL,AL
ADDAL,AL
ADDAL,AL
ADDAL,DL
MOV[BX],AL
第5章功课答案
5.1总线周期的寄义是什么?
8086/8088CPU的根本总线周期由几个时钟构成?
假如
一个CPU的时钟频率为8MHz,那么,它的一个时钟周期是若干?
一个根本总线周期是多
少?
假如主频为5MHz呢?
解:
CPLI拜访总线(从内存储器或I/0端口读/写字节或字)所需的时光称为总线周期.8086/8088CPU的根本总线周期由4个时钟构成.若CPU的时钟频率为8(5)MHz,时钟周期为1/8MHz=125(1/5MHz=2O)ns,根本总线周期为4×125(200)ns=500(800)ns
总线周期的TI.T2.T3.T4状况,CPU分离履行什么动作?
什么情形下须要拔出
等待状况Tw?
Tw在哪儿拔出?
如何拔出?
解:
下面以存储器读为例进行解释.
在Tl周期:
输出地址旌旗灯号.地址锁存许可旌旗灯号.内存或I/O端口拜访掌握旌旗灯号;
在T2周期:
CPIJ开端履行数据传送操纵,此时,8086CPU内部的多路开关进行切换,将
地址/数据线AD15~AD0上的地址撤消,切换为数据总线,为读写数据作预备.8288总线掌握器发出数据总线许可旌旗灯号和数据发送/吸收掌握旌旗灯号DT/R许可数据收发器工作,使数据总线与8086CPU的数据线接通,并掌握数据传送的偏向.同样,把地址/状况线A19/S6~A16/S3切换成与总线周期有关的状况信息,指导若干与周期有关的情形.
在T3周期:
开端的时钟降低沿上,8086CPU采样READY线.假如READY旌旗灯号有用(高电平),则在T3状况停滞落后人TA状况.在T4状况开端的时钟降低沿,把数据总线上的数据读入CPU或写到地址选中的单元.在T4状况:
停滞总线周期.假如拜访的是慢速存储器或是外设接口,则应当在Tl状况输出的地址,经由译码选中某个单元或装备后,立刻驱动READY旌旗灯号到低电平.8086CPU在T3状况采样到READY旌旗灯号无效,就会拔出等待周期Tw,在Tw
状况CPU持续采样READY旌旗灯号;直至其变成有用后再进人T4状况,完成数据传送,停滞总线周期.在T4状况,8086CPU完成数据传送,状况旌旗灯号S2~S0.变成无操纵的过渡状况.在此时代,8086CPU停滞总线周期,恢复各旌旗灯号线的初态,预备履行下一个总线周期.
第7章作业答案
7.1外部装备为什么要经由过程接口电路和主机体系相连?
解:
因为外部装备种类繁多,输入信息可能是数字量.模仿量或开关量,并且输入速度.电平.功率与CPU差距很大.所以,平日要经由过程接口电路与主机体系相连.
7.4CPU和输入输出装备之间传送的信息有哪几类?
解:
CPU和输入输出装备之间传送的信息重要有3类.
(l)数据在微型盘算机中,数据平日为8位.16位或32位.
(2)状况信息在输入时,有输入装备的信息是否预备好;在输出时有输出装备是否有空,若输
出装备正在输出信息,则以忙指导等.
(3)掌握信息例如,掌握输入输出装备启动或停滞等.
7.9设一个接口的输入端口地址为0100H,状况端口地址为0104H,状况端口中第5位
为1暗示输入缓冲区中有一个字节预备好,可以输入.设计具体程序以实现查询式
输入.
POLl:
INAL,0104H
ANDAL,20H
JZPOLl
INAL,0100H
第8章作业答案
中止响应进程中,8086CPU向8259A发出的两个RT互旌旗灯号分离起什么感化?
解:
CPU发出的第一个INTA脉冲告知外部电路,其提出的中止请求已被响应,应预备将类型号发给CPU,8259A接到了这个INTA脉冲时,把中止的最高优先级请求置入中止状况存放器(ISR)中,同时把IRR(中止请求存放器)中的响应位复位.CPU发出的第二个INTA脉冲告知外部电路将中止的类型号放在数据总线上.
最多可以有若干个中止类型?
按照产生中止的办法分为哪两大类?
解:
8086CPU最多可以有256个中止类型.按照产生中止的办法,可以分为内
部中止(软件中止)和外部(硬件中止)中止两大类.
8.9在编写中止处理子程序时,为什么要在子程序中呵护很多存放器?
解:
因为在用户程序运行时,会在存放器中有中央成果,当在中止办事程序中要
运用这些存放器前要把这些存放器的内容推至客栈保管(称为呵护现场).在从
中止办事程序返回至用户程序时把这些内容从堆找恢复至存放器中(称为恢复现场).
中有5个中止源,其优先权分列为:
1.2.3.4.5,它们的中止服
务程序的进口地址分离为:
3000H.302OH.3050H.3080H.30AOH.编写一个程序,
当有中止请求CPU响应时,能用查询方法转至申请中止的优先权最高的源的中止服
务程序.
解:
若5个中止源的中止请求放在一中止状况存放器中,按优先权分离放在状况的7
位(优先权最高)至位3中.查询办法的程序段为:
INAL,STATUS
CMPAL,80H
JNEN1
JMP3000H
N1:
INAL,STATUS
CMPAL,40H
JNEN2
JMP3020H
N2:
INAL,STATUS
CMPAL,20H
JNEN3
JMP3050H
N3:
INAL,STATUS
CMPAL,10H
JNEN4
JMP3080H
N4:
IN