微机原理与接口技术第五章、第六章课后习题答案
- 格式:doc
- 大小:1.57 MB
- 文档页数:4
第二章 8086体系结构与80x86CPU1.8086CPU由哪两部分构成?它们的主要功能是什么?答:8086CPU由两部分组成:指令执行部件(EU,Execution Unit)和总线接口部件(BIU,Bus Interface Unit)。
指令执行部件(EU)主要由算术逻辑运算单元(ALU)、标志寄存器FR、通用寄存器组和EU控制器等4个部件组成,其主要功能是执行指令。
总线接口部件(BIU)主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成,其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或I/O端口读取操作数参加EU运算或存放运算结果等。
2.8086CPU预取指令队列有什么好处?8086CPU内部的并行操作体现在哪里?答:8086CPU的预取指令队列由6个字节组成,按照8086CPU的设计要求,指令执行部件(EU)在执行指令时,不是直接通过访问存储器取指令,而是从指令队列中取得指令代码,并分析执行它。
从速度上看,该指令队列是在CPU内部,EU从指令队列中获得指令的速度会远远超过直接从内存中读取指令。
8086CPU内部的并行操作体现在指令执行的同时,待执行的指令也同时从内存中读取,并送到指令队列。
5.简述8086系统中物理地址的形成过程。
8086系统中的物理地址最多有多少个?逻辑地址呢?答:8086系统中的物理地址是由20根地址总线形成的。
8086系统采用分段并附以地址偏移量办法形成20位的物理地址。
采用分段结构的存储器中,任何一个逻辑地址都由段基址和偏移地址两部分构成,都是16位二进制数。
通过一个20位的地址加法器将这两个地址相加形成物理地址。
具体做法是16位的段基址左移4位(相当于在段基址最低位后添4个“0”),然后与偏移地址相加获得物理地址。
由于8086CPU的地址线是20根,所以可寻址的存储空间为1M字节,即8086系统的物理地址空间是1MB。
第2章2.14, 2.27, 2.40, 2.46, 2.49,2.52第5章5.10, 5.14, 5.17,第6章6.2, 6.10, 6.12, 6.14第7章7.9, 7.11第10章10.4, 10.5第2章2.9(1) 读操作占一次总线周期(4个时钟+1个时钟的等待周期)共5个时钟周期每个时钟周期=1/4MHz=0.25us,所以共需要0.25us*5=1.25us(2) 复位至少需要4个时钟周期,4*0.25us=1us复位后内部除CS=FFFFH外,其它寄存器清0。
第一条指令的地址FFFF0H2.10 T1:地址锁存T2:地址撤销,准备数据T3:数据稳定到总线上T4:读写总线上的数据READY2.14(1)数据段首地址DS*16=01500H,堆栈段首地址=SS*16=02500H,所以数据段中存放信息不能与堆栈段重合,故数据段末地址=0250H-1=024FFH即数据段范围:01500H~024FFH,4K字节(2)堆栈段末地址=SS*16+SP=02500H+1200H=03700H大小为1200H字节=4608字节,可存放16位的字4608/2=2304个(3)代码段由于下限没有其它限制,故最大64KB首地址=06400H,末地址=06400H+64KB-1=06400H+FFFFH=163FFH所以代码段地址范围:06400H~163FFH(4)11F4H。
现在SP=0300H,则原来SP+12=0300H+0CH=030CH注:数的表示范围仅与内部通用寄存器的位数(字长)有关,与外部数据线条数无关。
2.46(1)G=0:段界以字节为单位地址范围:089C0000H~089C003FH大小为3FH+1=40H=64,可容纳64/2=32个汉字(2)G=1:段界以4K字节为单位LIMIT = Limit×4K + 0FFFH= 0003FH×4K +0FFFH = 40H×4K - 1段大小= LIMIT + 1 = 40H×4K = 40000H段的末地址= 089C0000H + 40000H – 1 = 089FFFFFH注:书上P.64例题的结果为0048FFFFH。
微机原理与接口技术(楼顺天第二版)习题解答第5章总线及其形成5.1 微处理器的外部结构表现为数量有限的输入输出引脚,它们构成了微处理器级总线。
5.2 微处理器级总线经过形成电路之后形成了系统级总线。
5.3 答:总线是计算机系统中模块(或子系统)之间传输数据、地址与控制信号的公共通道,它是一组公用导线,是计算机系统的重要组成部分。
采用标准化总线的优点是:①简化软、硬件设计。
②简化系统结构。
③易于系统扩展。
④便于系统更新。
⑤便于调试与维修。
5.4 答:在微型计算机应用系统中,按功能层次可以把总线分成:片内总线、元件级总线、系统总线与通信总线。
5.5 答:RESET为系统复位信号,高电平有效,其有效信号至少要保持四个时钟周期,且复位信号上升沿要与CLK下降沿同步。
系统复位后的启动地址为0FFFF0H。
即:(CS)=0FFFFH,(IP)=0000H。
5.6 8086CPU复用的引脚有AD15~AD0、A16/S3、A17/S4、A18/S5、A19/S6、BHE/S7。
8088CPU复用的引脚有AD7~AD0、A16/S3、A17/S4、A18/S5、A19/S6、BHE/S7。
5.7 答:设置引脚复用主要是可以减少引脚数量。
CPU通过分时复用解决地址线与数据线的复用问题。
ALE为地址锁存使能信号在总线周期的T1周期有效,BHE为高8位数据线允许,在T1周期有效,需要锁存器锁存,在需要使用高8位数据线时使用。
5.8 答:高阻态可做开路理解。
可以把它看作输出(输入)电阻非常大。
5.9 答:RESET(Reset):复位信号,输入,高电平有效。
CPU 收到复位信号后,停止现行操作,并初始化段寄存器DS、SS、ES,标志寄存器PSW,指令指针IP与指令队列,而使CS=FFFFH。
RESET信号至少保持4个时钟周期以上的高电平,当它变成低电平时,CPU执行重启动过程,8086/8088将从地址FFFF0H开始执行指令。
微机原理与接口技术(楼顺天第二版)习题解答第6章 总线及其形成6、1答:内存储器按其工作方式的不同,可以分为随机存取存储器(简称随机存储器或RAM)与只读存储器(简称ROM)。
随机存储器。
随机存储器允许随机的按任意指定地址向内存单元存入或从该单元取出信息,对任一地址的存取时间都就是相同的。
由于信息就是通过电信号写入存储器的,所以断电时RAM 中的信息就会消失。
计算机工作时使用的程序与数据等都存储在RAM 中,如果对程序或数据进行了修改之后,应该将它存储到外存储器中,否则关机后信息将丢失。
通常所说的内存大小就就是指RAM 的大小,一般以KB 或MB 为单位。
只读存储器。
只读存储器就是只能读出而不能随意写入信息的存储器。
ROM 中的内容就是由厂家制造时用特殊方法写入的,或者要利用特殊的写入器才能写入。
当计算机断电后,ROM 中的信息不会丢失。
当计算机重新被加电后,其中的信息保持原来的不变,仍可被读出。
ROM 适宜存放计算机启动的引导程序、启动后的检测程序、系统最基本的输入输出程序、时钟控制程序以及计算机的系统配置与磁盘参数等重要信息。
6、2 答:存储器的主要技术指标有:存储容量、读写速度、非易失性、可靠性等。
6、3 答:在选择存储器芯片时应注意就是否与微处理器的总线周期时序匹配。
作为一种保守的估计,在存储器芯片的手册中可以查得最小读出周期t cyc (R)(Read Cycle Time)与最小写周期t cyc (W)(Write Cycle Time)。
如果根据计算,微处理器对存储器的读写周期都比存储器芯片手册中的最小读写周期大,那么我们认为该存储器芯片就是符合要求的,否则要另选速度更高的存储器芯片。
8086CPU 对存储器的读写周期需要4个时钟周期(一个基本的总线周期)。
因此,作为一种保守的工程估计,存储器芯片的最小读出时间应满足如下表达式:t cyc (R)<4T -t da -t D -T其中:T 为8086微处理器的时钟周期;t da 为8086微处理器的地址总线延时时间;t D 为各种因素引起的总线附加延时。
《微机原理与接口》课程习题及参考答案2012年秋季第一章习题(教材P29)作业11.1 微处理器、微型计算机和微型计算机系统三者之间有什么不同?【解】把CPU(运算器和控制器)集成在一个芯片上,即为微处理器。
微处理器加上部分存储器和外设(或外设接口)就构成了微型计算机。
微型计算机与管理、维护计算机硬件以及支持应用的软件相结合就形成微型计算机系统。
1.2 CPU在内部结构上由哪几部分组成?CPU应该具备哪些主要功能?【解】CPU主要由算术逻辑单元、指令寄存器、指令译码器、可编程逻辑阵列、寄存器组、标志寄存器等组成。
CPU主要功能是进行算术逻辑运算,以及控制计算机按照程序的规定自动运行。
1.3 微型计算机采用总线结构有什么优点?【解】采用总线结构,扩大了数据传送的灵活性,减少了连线;而且总线可以标准化,易于兼容和工业化生产。
1.4 数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合用一组总线或者合用部分总线,那么要靠什么来区分地址和数据?【解】数据总线是双向的,地址总线是单向的。
采用数据和地址线复用,主要靠信号的时序来区分。
通常在读写数据时,在复用的总线上先输出地址信息,然后再传送数据。
第二章习题(教材P43)作业22.9 8086的基本程序执行寄存器是由哪些寄存器组成的?【解】8086的基本程序执行寄存器组成如下:⑴ 8个通用寄存器:可用于存放操作数和指针。
⑵ 4个段寄存器:保存段基值(或段选择子)。
⑶ 1个标志寄存器:保存状态位和控制标志位。
⑷ 1个指令指针寄存器:存放下一条要执行的指令的指针。
2.13 如何形成指令中的各种条件码?【解】指令中的条件码,即标志寄存器中的状态标志。
它们主要由算术和逻辑运算指令设置或清除。
也有设置和清除某些状态标志位的专用指令。
2.16 段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的物理地址为多少?【解】指令的物理地址 = 1200H×16 + FF00H = 21F00H2.17 8086微处理器的执行部件有什么功能?由哪几部分组成?【解】8086微处理器的执行部件负责指令的执行。
微机原理与接口技术习题参考答案第一章(p20)1、参考答案:冯•诺伊曼计算机的设计思想(EDVAC方案:存储程序通用电子计算机方案):①计算机分为计算器、控制器、存储器、输入和输出装置五个部分;②计算机内采用二进制;③将程序存储在计算机内,简称“程序存储”。
其中第三点是冯•诺依曼计算机设计的精华,所以人们又把冯•诺依曼原理叫做程序存储原理,即程序由指令组成并和数据一起存放在存储器中,机器则按程序指定的逻辑顺序把指令从存储器中读出来并逐条执行,从而自动完成程序描述的处理工作。
冯•诺伊曼计算机主要以运算器和控制器为中心,结构框图如下图所示。
2、参考答案:微处理器就是中央处理器CPU,是计算机的核心,单独的CPU不能构成计算机系统;微型计算机由微处理器、主存储器、I/O接口(注意:不是I/O设备)组成;而微型计算机系统除了包括微型计算机外,还有系统软件(即操作系统)、应用软件、外存储器和I/O设备等。
微型计算机系统结构如下图所示。
3、答案略,见p6~74、答案略,见图2,或教材图1-35、答案略,见p12~136、参考答案:由于8086微处理器的地址总线的宽度为20位,所以它可寻址220=1M字节的存储空间;而PentiumII微处理器的地址总线的宽度为36位,所以它可寻址236=64G字节的存储空间。
7、参考答案:①PCI(Peripheral Component Interconnect:外围设备互联),是Intel公司1992年发布486微处理器时推出的32/64位标准总线,数据传输速率位132MB/s,适用于Pentium微型计算机。
PCI总线是同步且独立于微处理器的具有即插即用(PNP:Plug and play,所谓即插即用,是指当板卡插入系统时,系统会自动对板卡所需资源进行分配,如基地址、中断号等,并自动寻找相应的驱动程序)的特性.PCI总线允许任何微处理器通过桥接口连接到PCI 总线上。
2114: 128片,10位和6位。
6116: 32片,11位和5位。
6264: 8片,13位和3位。
5.42114:611662646.4stack segment stack 'stack'dw 32 dup(0)stack endscode segmentstart proc farassume ss: stack, cs: codepush dssub ax, axpush axCALL I6116 ;调用写入6116子程序MOV AH, 2 ;回车换行MOV DL, 0DHINT 21HMOV DL, 0AHINT 21HCALL O6116 ;调用读出6116子程序ret;写入6116:将键入字符的ASCII码写入6116I6116 PROCMOV BL, 0 ;定义页地址码(16个地址为一页)MOV CX, 128 ;定义页数LOP1: PUSH CXMOV DX, 380H ;将页地址从74LS273输出MOV AL, BLOUT DX, ALMOV CX, 16 ;定义页内单元数MOV DX, 390H ;将键入数写入16个单元LOP2: MOV AH, 1INT 21HOUT DX, ALINC DXLOOP LOP2INC BL ;换页POP CXLOOP LOP1 ;页数未满换页重新写入16个单元RETI6116 ENDP;读出6116:将写入6116的数据读出送显示O6116 PROCMOV BL, 0MOV CX, 128LOP3 PUSH CXMOV DX, 390HMOV AL, BLOUT DX, ALMOV CX, 16MOV DX 380H ;将16个单元的数据送显示LOP4: IN AL, DXPUSH DXMOV DL, AL ;将6116中读出的ASCII码送DLMOV AH, 2 ;2号功能调用显示DL中的字符INT 21HPOP DXINC DXLOOP LOP4INC BLPOP CXLOOP LOP3RETO6116 ENDPend start6.5stack segment stack 'stack'dw 32 dup(0)stack endscode segmentstart proc farassume ss: stack, cs: codepush dssub ax, axpush axMOV AH, 2 ;用2号功能调用输出字符,调用号送AHMOV CX, 100 ;字符个数送计数器MOV DX, 380HWAIT0: IN AL, DX ;从244读入TEST AL, 80H ;测试状态位是否为0JNZ WAIT0 ;不为0,等待继续测试状态WAIT1: IN AL, DX ;状态为0,继续读入TEST AL, 80H ;测试状态是否为1JZ WAIT1 ;不为1,等待继续测试状态IN AL, DX ;状态为1,读入数据即ASCII码AND AL, 7FH ;去掉状态位MOV DL, AL ;ASCII码送DL,输出字符INT 21HLOOP WAIT0-3 ;跳到给DX赋值380H的MOV指令,该指令为3字节retstart endpcode endsend start。
2114: 128片,10位和6位。
6116: 32片,11位和5位。
6264: 8片,13位和3位。
5.4
2114:
6116
6264
6.4
stack segment stack 'stack'
dw 32 dup(0)
stack ends
code segment
start proc far
assume ss: stack, cs: code
push ds
sub ax, ax
push ax
CALL I6116 ;调用写入6116子程序
MOV AH, 2 ;回车换行
MOV DL, 0DH
INT 21H
MOV DL, 0AH
INT 21H
CALL O6116 ;调用读出6116子程序
ret
;写入6116:将键入字符的ASCII码写入6116
I6116 PROC
MOV BL, 0 ;定义页地址码(16个地址为一页)
MOV CX, 128 ;定义页数
LOP1: PUSH CX
MOV DX, 380H ;将页地址从74LS273输出
MOV AL, BL
OUT DX, AL
MOV CX, 16 ;定义页内单元数
MOV DX, 390H ;将键入数写入16个单元
LOP2: MOV AH, 1
INT 21H
OUT DX, AL
INC DX
LOOP LOP2
INC BL ;换页
POP CX
LOOP LOP1 ;页数未满换页重新写入16个单元
RET
I6116 ENDP
;读出6116:将写入6116的数据读出送显示
O6116 PROC
MOV BL, 0
MOV CX, 128
LOP3 PUSH CX
MOV DX, 390H
MOV AL, BL
OUT DX, AL
MOV CX, 16
MOV DX 380H ;将16个单元的数据送显示
LOP4: IN AL, DX
PUSH DX
MOV DL, AL ;将6116中读出的ASCII码送DL
MOV AH, 2 ;2号功能调用显示DL中的字符
INT 21H
POP DX
INC DX
LOOP LOP4
INC BL
POP CX
LOOP LOP3
RET
O6116 ENDP
end start
6.5
stack segment stack 'stack'
dw 32 dup(0)
stack ends
code segment
start proc far
assume ss: stack, cs: code
push ds
sub ax, ax
push ax
MOV AH, 2 ;用2号功能调用输出字符,调用号送AH
MOV CX, 100 ;字符个数送计数器
MOV DX, 380H
WAIT0: IN AL, DX ;从244读入
TEST AL, 80H ;测试状态位是否为0
JNZ WAIT0 ;不为0,等待继续测试状态
WAIT1: IN AL, DX ;状态为0,继续读入
TEST AL, 80H ;测试状态是否为1
JZ WAIT1 ;不为1,等待继续测试状态
IN AL, DX ;状态为1,读入数据即ASCII码
AND AL, 7FH ;去掉状态位
MOV DL, AL ;ASCII码送DL,输出字符
INT 21H
LOOP WAIT0-3 ;跳到给DX赋值380H的MOV指令,该指令为3字节
ret
start endp
code ends
end start。