兰州理工大学微机原理习题集作业答案章.docx
《兰州理工大学微机原理习题集作业答案章.docx》由会员分享,可在线阅读,更多相关《兰州理工大学微机原理习题集作业答案章.docx(31页珍藏版)》请在冰点文库上搜索。
兰州理工大学微机原理习题集作业答案章
第一章微型计算机概论
1.1、答:
微型计算机系统涉及硬件系统和软件系统两大某些。
硬件系统涉及:
微型计算机、外部设备、电源及其他辅助设备。
软件系统涉及:
系统软件和应用软件。
微型计算机也称为主机,主机涉及:
微解决器、存储器、输入/输出接口(Input/Output),微解决器通过系统总线和存储器、输入/输出接口进行连接。
微解决器(MicroprocessorUnit)简称为MPU(或者称为MP),它是一种中央控制器(CentralProcessingUnit),简称CPU。
它是微型计算机核心部件,它将运算器、控制器、寄存器通过内部总线连接在一起,并集成在一种独立芯片上。
1.2、答:
单片机是将CPU、ROM、RAM以及I/O接口电路以及内部系统总线等所有集中在一块大规模集成电路芯片上,就构成了单片机。
单板机是将微解决器芯片、存储器芯片、I/O接口芯片及少量输入输出设备(键盘,数码显示屏)安装在一块印制板上构成一台微型计算机。
由多块印制板构成微机称为多板机。
1.3、完毕下列转换(保存4位小数)
(21.32)10=(10101.0101)2=(25.2436)8=(15.51EB)16
50.38D=110010.0110B=62.3024Q=32.6147H
1.4、完毕下列计算
已知X=-63,Y=59
则[X]原=BFH(10111111B),[X]反=C0H(B),[X]补=C1H(11000001B)
[Y]原=3BH(00111011B),[Y]反=3BH(00111011B),[Y]补=3BH(00111011B)
[X+Y]补=0FCH(11111100B),[X-Y]补=86H(10000110B)。
[X]补+[Y]补=0FCH(11111100B),[X]补-[g]补=86H(10000110B)。
1.5、答:
浮点数是指小数点在数值中位置不是固定不变,实际位置将随阶码而浮动,用这种办法表达数,称为浮点数。
定点数是指小数点在数值中位置固定不变。
1.6、答:
压缩BCD码是4位二进制表达一位十进制数而非压缩BCD码是8位二进制表达一位十进制数。
1.7、写出下列数值压缩BDC码、非压缩BDC码、ASCΠ码值。
(改为15,29)
15=[15H]压缩BCD码=[0105H]非压缩BCD码=[3135H]ASCΠ码
29=[29H]压缩BCD码=[0209H]非压缩BCD码=[3239H]ASCΠ码
第二章8086/8088微解决器
2.1答:
从功能上讲由两某些构成总线接口单元BIU和执行单元EU构成。
总线接口单元(BIU)是微解决器内部与存储器和I/O接口传送信息通道,总线接口单元负责从内存中将指令送到指令队列中;负责把数据从内存或I/O接口送到执行单元(EU);负责将执行单元运营成果送到内存或I/O接口。
EU功能是负责译码和执行指令。
2.2答:
指令队列(Queue)存储预取指令,采用预取指令办法将减少微解决器等待时间,提高运营效率。
8086CPU中指令队列有6个;8088CPU中指令队列有只有4个。
2.3答:
8086/8088CPU中有16个16位寄存器。
4个段地址寄存器是代码段寄存器CS;数据段寄存器DS;堆栈段寄存器SS和扩展段寄存器ES。
它们是用来存储每一种段首地址(段基地址)。
一种指令指针寄存器IP是用于存储要执行指令偏移地址,它不能作为普通寄存器使用。
一种标志寄存器(又称为程序状态寄存器)用于反映指令执行成果或控制指令执行形式。
)有8个通用寄存器,通用寄存器分为数据寄存器与指针和变址寄存器两组。
数据寄存器涉及AX(累加器)、BX(基址寄存器)、CX(计数器)和DX(数据寄存器),普通用来存储16位数据,故称为数据寄存器。
其中每一种又可依照需要将高8位和低8位提成独立两个8位寄存器来使用,即AH、BH、CH、DH和AL、BL、CL、DL两组,用于存储8位数据,它们均可独立寻址、独立使用。
数据寄存器用来存储计算成果和操作数,也可以存储地址。
指针寄存器涉及堆栈指针寄存器SP、基址指针寄存器BP普通用来存储地址偏移量和用于寻址内存堆栈内数据
变址寄存器涉及原变址寄存器SI和目变址寄存器DI,普通用来存储地址偏移量为存储器寻址时提供地址。
2.4答:
标志寄存器又称为程序状态寄存器,是一种16位寄存器,标志寄存器设立了9个标志位。
这9个标志位按功能分可以分为两类:
一类为状态标志,状态标志表达执行某种操作后,ALU所处状态特性,这些状态标志会影响背面详细操作。
状态标志有6个:
CF、AF、SF、PF、OF和ZF。
另一类为控制标志,用来控制CPU操作,反映存储器地址变化方向、与否容许中断及在执行程序时与否进行单步中断。
控制标志有3个:
DF、IF和TF控制标志是人为设立,每个控制标志都对某种特定功能起控制作用。
2.5答:
8086与8088有3点不同之处;1.8086有16条数据线而8088只有8条数据线,2.8086
而8088
。
3.8086
而8088
。
2.6答:
堆栈是在内存中开辟一种特定区域,用以存储CPU寄存器或存储器中暂时不用数据和有用信息。
在数据段和附加段存储数据时,普通是从低地址开始向高地址存储数据,而用PUSH指令向堆栈中存储数据时总是从高地址开始逐渐向低地址方向增长。
堆栈指令遵循“先进后出”,“后进先出”原则,凡是用PUSH指令最后推入堆栈数据,用POP指令弹出时最先出栈。
在操作时是以字为单位。
2.7答:
8086/8088CPU各有20根地址总线,可寻址范畴是1M个存储单元。
8086CPU有16根数据,一次可以读一种字也可以读一种字节。
8088CPU有8数据总线一次以读一种字节。
2.8答:
1.物理地址就是实际地址,它具备20位地址值,它是唯一标志1MB存储空间某一单元地址。
2.逻辑地址由段基址和偏移量构成。
程序以逻辑地址编址,而不是物理地址。
3.在8086/8088存储空间中,把16个字节存储空间看作一节。
为了简化操作,规定各个逻辑段从节整数边界开始,也就是说段首地址低4位应当是“0”,因而把段首地址高16位称为“段基值”。
4.偏移量是该物理地址距离段首地址单元数。
2.9答:
总线上传播信号一组导线,作为微机各部件之间信息传播公共通道。
系统总线按功能分数据总线、地址总线、控制总线。
2.10答:
1.8086/8088CPU把存储器分为代码段、数据段、堆栈段、附加段。
由于8086/8088寄存器是16位,最大只能寻址64K个单元存储空间,为了增大寻址空间把存储器进行分段,这样就可以寻址1MB存储空间。
2.每段最大空间为64KB。
2.11答:
(1)2300H;1010H;24010H
(2)0000H;1000H;01000H
(3)2AE0H;1690H;2C490H(4)7369H;0010H;736A0H
2.12答:
1.数据段首地址是1H末地址是21FFFH。
2.附加段首地址是20A30H末地址是30A2FH。
3.代码段首地址是470E0H=470EH×10H末地址是570DFH=(470E0H+FFFFH)。
2.13答:
8086/8088CPU复位后来,除代码段寄存器外,别的标志寄存器、指令指针寄存器、各段寄存器及指令对列所有被清零。
2.14答:
在一种读总线周期ALE在第一种时钟周期为高电平,别的周期为低电平。
/S7在第一种时钟周期为低电平,别的周期为高电平。
在第一种时钟周期为低电平,第二、三周期为高电平。
始终为高电平。
M/
始终为高电平。
DT/
始终为低电平。
2.15答:
1.8086CPU读/写总线周期时,至少包括4个时钟周期。
2.CPU在T3状态前沿(下降沿)对Ready信号进行采样。
若CPU在T3状态开始采样到Ready信号为低电平,那么将在T3和T4之间插入等待状态TW。
3.TW可以是一种,也可以是各种。
CPU在每个TW前沿处对Ready信号进行采样。
当在TW状态采样到READY信号为高电平时,在当前Tw状态执行完,进入T4状态。
第三章存储器
3.1答:
1.容量:
存储器芯片容量是以1位二进制数(bit)为单位,因而存储器容量是指每一种存储器芯片所能存储二进制数位数。
(存储器容量=存储单元数
位数)
2.存储速度:
存储器基本操作是读出与写入,称为“访问”或“存取”。
存储器存储速度有两个时间参数:
(1)访问时间(AccessTime)TA从启动一次存储器操作,到完毕该操作所经历时间。
(2)存储周期(MemoryCycle)TMc启动两次独立存储器操作之间所需最小时间间隔。
3.存储器可靠性:
4.性能/价格比:
5.其她指标(存储器选取有时还应考虑功耗、集成度等指标)。
3.2答:
按存储器读写功能分可以分为随机读写存储器(RAM)和只读存储器(ROM)。
随机读写存储器RAM可以随机地按指定地址从存储单元存入或读取(简称存取)数据,存储在RAM中信息,一旦掉电就会丢失。
随机读写存储器RAM可分为静态随机存取存储器SRAM、动态随机存取存储器DRAM和集成随机读写存储器IRAM。
只读存储器(ROM)基本特性是在正常运营中只能随机读取预先存入信息,虽然在断电状况下,ROM仍能长期保存信息内容不变,因此它是一种永久存储器。
只读存储器(ROM)可分为掩膜只读存储器(MaskROM)、可编程只读存锗器(PROM)、紫外线可擦除可编程只读存储器(EPROM)、电可擦除编程只读存储器(E2PROM)和迅速可擦编成只读存储器(FlashEPROM)。
掩膜只读存储器其构造简朴,存储信息稳定,可靠性高,可以永久性保存信息;可编程只读存储器是由半导体厂家制作“空白”存储器阵列(即所有存储单元所有为1或所有为0状态)出售,顾客依照需要可以实现现场编程写入,但只能实现一次编程;紫外线可擦编程只读存储器、电可擦除编程只读存储器和快可擦编程只读存储器等不但可以现场编程。
还可以擦除原存储信息内容,写入新信息。
3.3答:
SRAM特点是在一种存储单元所用晶体管数目多,但不需要刷新电路。
DRAM特点是在一种存储单元所用晶体管数目少,但需要刷新电路。
IRAM特点是将动态随机存取存储器和刷新电路集成在一片芯片中,它即具备SRAM速度快长处,又具备DRAM便宜。
IRAM事实上是附有刷新电路DRAM。
它在当代微机系统中得到广泛应用,大容量内存普通都是用IRAM。
3.4答:
1)13条地址线和4条数据线;2)19条地址线和1条数据线
3)17条地址线和4条数据线;4)15条地址线和8条数据线
3.5答:
1)RAM存储容量为256K×8bit;2)有18条地址线和8条数据线;3)若采用6116需要128片,若采用6264需要32片,若采用62128需要16片,若采用2114需要512片,若采用2141需要512片。
3.6答:
1)ROM存储容量为512K×8bit;2)需要19条地址线和8条数据线;3)若采用2764需要64片,若采用27128需要32片,若采用2816A需要256片,若采用28F256需要16片。
3.7答:
惯用存储器片选控制办法有线选法、全译码法和某些译码法。
线选法地址线可以不用完,也无需专门译码电路。
但由于高位地址线可随意取值0或1。
因此,存在地址重叠,并且导致存储器地址不能持续分布。
全译码法所有地址线均参加地址译码,芯片地址线直接和低位地址总线相连,高位地址总线经译码器或逻辑电路与各芯片片选信号相连。
某些译码法与全译码法类似,只是高位地址线中有一某些进行译码,产生片选信号,而不是所有。
这种办法称为某些译码法。
3.8答:
第一片首地址为21000H(错),末尾地址为24FFEH。
第二片首地址为21001H,末尾地址为24FFFH。
第三片首地址为25000H,末尾地址为28FFEH。
第四片首地址为25001H,末尾地址为28FFFH。
3.9第一片A19~A12=01000000,地址范畴是40000H~40FFEH
第二片A19~A12=01000000,地址范畴是40001H~40FFFH
第三片A19~A12=01000001,地址范畴是41000H~41FFEH
第四片A19~A12=01000001,地址范畴是41001H~41FFFH
3.10(有问题A0和BHE未画)按既有连线地址为
第一片A19~A13=1000000,地址范畴是80000H~81FFFH__
第二片A19~A13=1000001,地址范畴是8H~83FFFH__
图3-18086CPU与存储器连接电路图
第三片A19~A13=1000010,地址范畴是84000H~85FFFH__
第四片A19~A13=1000011,地址范畴是86000H~87FFFH__
图3-28086CPU与存储器连接电路图
3.111)答:
是译码功能。
2).
3)答:
ROM0、ROM1地址范畴。
94000H~97FFFH
3.12答:
存储器
(1)地址范畴为80000H~80FFEH;存储器
(2)地址范畴为80001H~80FFFH。
(题目有错,存储器(4)地址范畴为81001H~81FFFH)
3.13答:
1)系统存储容量为:
B3FFFH-B0000H+1=4000H=16KB;
2)需要6264芯片:
(16K*8bit)/8K*8bit=2片;
3)画出系统连接图。
两片6264芯片地址范畴如表所示,高位地址A14~A19参加译码形成两片6264片选信号,奇地址存储器芯片和偶地址存储器芯片由A0和
区别。
存储器与系统总线连接电路如图题3.13所示。
A19
A18
A17
A16
A15
A14
A13
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
图题3.13存储器扩展电路
3.14答:
(不是8086系统)
3.15在8086CPU构成系统中,用4片2764(8K×8bit)存储芯片构成随机ROM存储系统,其第一片首地址为(C000H:
8000H),试画出存储器与CPU连接电路图。
答:
第四章8086/8088指令系统
4.1答:
机器语言每一条指令是以二进制为代码指令,它可以被计算机直接执行。
汇编语言是用助记符或用符号来编写指令,是一种与机器语言一一相应语言。
机器不能直接执行程序,程序必要通过翻译,机器才干执行。
高档语言是面向过程语言,它不依赖于特定机器,独立于机器,用同一种高档语言编写程序可以在不同机器上运营而获得相似成果。
4.2请指出如下各指令源、目操作数所使用寻址方式。
(1)MOVSI,2100H源:
及时数寻址;目:
寄存器寻址
(2)SBBBYTEPTRDISP[BX],7;源:
及时数寻址;目:
寄存器相对寻址
(3)AND[DI],AX源:
寄存器寻址;目:
寄存器间接寻址
(4)ORAX,[609EH]源:
直接寻址;目:
寄存器寻址
(5)MOV[BX+DI+30H],CX源:
寄存器寻址;目:
基址变址相对寻址
(6)PUSHES:
[BP]源:
寄存器间接寻址;目:
隐含寻址
(7)CALL[DI]DISP寄存器相对寻址
(8)JNZShort_label直接寻址
(9)CBWBL(指令错)
(10)MOVAX,[1000H]源:
直接寻址;目:
寄存器寻址
(11)MOVAX,ARRAY[BX][SI];源:
基址变址相对寻址;目:
寄存器寻址
(12)MULBL源:
寄存器寻址;目:
隐含寻址
(13)MOVAX,[BX][SI]源:
基址变址寻址;目:
寄存器寻址
(14)MOVAL,TABLE源:
直接寻址;目:
寄存器寻址
(15)MOVAX,DISP[BX+DI]源:
基址变址相对寻址;目:
寄存器寻址
(16)MOVAX,[BX]源:
寄存器间接寻址;目:
寄存器寻址
4.3答:
基址寄存器BX、基址指针寄存器BP、原变址寄存器SI、目变址寄存器DI。
4.4下列各条指令与否有错?
如果有,请指出错误之处。
(1)MOVDS,1000H及时数不能直接给段寄存器送数
(2)MOV[100],23H目操作数应指明类型,改为BYTEPTR[100]
(3)ADDAX,[BX+BP+6]存储器寻址不能有两个基地址[BX,BP]
(4)PUSHDL进栈是以字为单位
(5)INAX,[3FH]I/O接口地址不能加括号
(6)OUT3FFH,AL口地址3FF应放在DX中
(7)LESSS,[SI]SS不能存储偏移量
(8)POP[AX]AX不用来做间址寄存器
(9)IMUL4CH乘法中源操作数不能是及时数
(10)SHLBX,5移位超过1位应放在CL中
(11)INT300及时数(向量码)应不大于255
(12)XCHGDX,0FFFH此指令中不能有及时数
(13)POPAL出栈是以字为单位
(14)DIV32H除法中原操作数不能是及时数
(15)MOVAX,BYTEPTR[SI]源操作数和目操作数不等宽
(16)MOVDX,DS:
[BP]对的
(17)MOV128,CL目操作数不能为及时数
4.5设若标志寄存器原值为0A11H,SP=0060H,AL=4。
下列几条指令执行后,标志寄存器、AX、SP值分别是多少?
PUSHF;F→SP;SP=5EH,[5EH]=0A11H
LAHF;F低8→AH;AH=11H
XCHGAH,AL;AH04H,AL=11H
PUSHAX;SP=5CH,[5CH]=0411H,
SAHF;AH→F低8;
POPF;SP→F
标志寄存器=0411H,AX=0411H,SP=005EH
4.6已知DS=H,关于内存单元值为:
(21000H)=00H,(21001H)=12H,(21200H)=00H,(21201H)=10H,(23200H)=20H,(23201H)=30H,(23400H)=40H,(23401H)=30H,(23600H)=60H,(23601H)=30H,符号COUNT偏移地址为1200H。
执行下列指令后,寄存器AX、BX、SI值分别是多少?
MOVBX,OFFSETCOUNTBX=1200H
MOVSI,[BX]SI=1000H
MOVAX,COUNT[SI][BX]
AX=_3040H__,BX=_1200H__,SI=__1000H____
4.7答:
AX=322FH,标志寄存器值为0410H
4.8设单元DATA在内存数据段中偏移量为24C0H,在24C0H~24C3H单元中依次存储着55H、66H、77H、88H。
下列几条指令执行后,寄存器AX、BX、CL、SI、DS值分别是多少?
MOVAX,DATA;AX=6655H
LEASI,DATA;SI=24C0H
MOVCL,[SI];CL=55H
LDSBX,DATA;DS=8877H,BX=6655H
4.9若AX=26D3H,CX=7908H,CF=1,OF=0,执行下列指令后,寄存器AX、CX值分别是多少?
_AX=A74CH___CX=FA08H__CF=_0__OF=__0_。
SALCH,1CH=FA,CL=08H
RCRAX,CLAX=A726H,CF=1
ROLAL,1AL=4CH,CF=0
4.10答:
原串在数据段中,但可以段超越。
目串必要在附加段中。
4.11答:
M/
=1;DT/
=1;
=1;
=0;
数据总线上数是0508H;地址总线上数分是49420H
4.12(与21题重)答:
AL=23H,功能将压缩BCD码转换为二进制。
4.13答:
上述程序段执行后,字节单元HCOD内容是43H;HCOD+1内容是35H。
该程序段功能是将压缩十六进制转换为ASCII字符。
4.14执行下面程序段后,(CL)=02H,(AX)=0040H。
XORBX,BX
MOVAX,0010H
MOVCL,2
SALAL,CL
MOVBL,AL
SALAL,CL
ADDAX,BX
4.15问:
(1)初值(AL)=37H时,程序段执行成果:
(AL)=07H
(2)初值(AL)=9FH时,程序段执行成果:
(AL)=0FFH
4.16下列程序段中,以X为首址字单元中数据依次为1234H、5678H;以Y为首址字单元中数据依次为8765H、4321H。
阅读程序,给出必要程序注释并完毕程序后问题。
LEASI,X;SI=0000H
LEADI,Y;DI=0004H
MOVDX,[SI+2];DX=5678H
MOVAX,X;AX=1234H
ADDAX,X;AX=2468H
ADCDX,[SI+2];DX=ACF0H
CMPDX,[DI+2];ACF0H与8765H比
JLL2;不大于转移到L2
CMPAX,Y;不不大于2468H与4321比
JLL1;不大于转移到L1
JMPEXIT;无条件转移到EXIT
L1:
MOVAX,1;给AX送1
JMPEXIT;无条件转移到EXIT
L2:
MOVAX,2
EXIT:
……
以上程序代码执行之后,AX=2;DX=ACF0H
4.17答:
程序将依次向堆栈压入数据为0003H、0002H、0001H。
该程序段实现了将二进制转换十进制功能。
4.18答:
程序功能是计算AX=1~10,BX=10H起累加和。
AX=10,BX=47H,CX=0。
MOVAX,0000H
MOVBX,0010H
MOVCX,10
LP:
INCAX
ADDBX,AX
LOOPLP
HLT
4.19答:
以上程序代码执行之后,AX=2;DX=ACF0H
4.20阅读下列程序段,给出必要程序注释并完毕程序后问题。
ADDAL,AL;2*AL
ADDAL、AL;4*AL
MOVBL,AL;AL→BL
SALBL,1;8*AL
ADDAL,BL;12*AL
HLT
(1)该程序段功能是什么?
答:
把AL中内容乘以12
(2)设AL初值为0AH,执行该程序段后,AL为多少?
答:
AL=78H
4.21已知有程序段如下:
(与12题重)
(1)该程序段功能是什么?
答:
将BCD码转换成二进制
(2)执行该程序段后,AL=23H
4.22、下列程序段规定在内存40000H开始顺序30个单元中存储着8位无符号数,将它们和放在DX中,试填空完毕该程序(并加入必要注释)或自行编制一段程