兰州理工大学微机原理习题集作业答案15章docWord文档下载推荐.docx
《兰州理工大学微机原理习题集作业答案15章docWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《兰州理工大学微机原理习题集作业答案15章docWord文档下载推荐.docx(30页珍藏版)》请在冰点文库上搜索。
![兰州理工大学微机原理习题集作业答案15章docWord文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/7/50919e62-6222-411c-b658-edf4d3b431a1/50919e62-6222-411c-b658-edf4d3b431a11.gif)
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
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.数据段首地址是12000H末地址是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×
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,地址范围是82000H~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
图题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=2000H,有关的内存单元值为:
(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;
=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
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
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;
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的初值为