微机原理第2章习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2章习题参考答案
18086CPU由哪两部分构成它们的主要功能是什么
答:
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内部的并行操作体现在指令执行的同时,待执行的指令也同时从内存中读取并送到指令队列。
3. 8086CPU中有哪些寄存器各有什么用途
答:
CPU有14个内部寄存器,可分为3大类:通用寄存器、控制寄存器和段寄存器。
通用寄存器是一种面向寄存器的体系结构,操作数可以直接存放在这些寄存器中,既可减少访问存储器的次数,又可缩短程序的长度,提高了数据处理速度,占用内存空间少。指令执行部件(EU)设有8个通用寄存器:
AX:累加器,一般用来存放参加运算的数据和结果,在乘、除法运算、
I/O操作、BCD数运算中有不可替代的作用
BX:基址寄存器,除可作数据寄存器外,还可放内存的逻辑偏移地址
CX:计数寄存器,既可作数据寄存器,又可在串指令和移位指令中作计数用
DX:DX除可作通用数据寄存器外,还在乘、除法运算、带符号数的扩展指令中有特殊用途
源变址寄存器SI:多用于存放内存的逻辑偏移地址,隐含的逻辑段地址在DS寄存器中,也可放数据
目标变址寄存器DI:多用于存放内存的逻辑偏移地址,隐含的逻辑段地址在DS寄存器中,也可放数据
基址指针BP:用于存放内存的逻辑偏移地址,隐含的逻辑段地址在SS寄存器中
堆栈指针SP:用于存放栈顶的逻辑偏移地址,隐含的逻辑段地址在SS寄存器中
控制寄存器包括指令指针寄存器IP和标志寄存器FLAG:IP用来指示当前
指令在代码段的偏移位置。IP 始终存有相对于当前指令段起点偏移量的下一条
指令,即IP总是指向下一条待执行的指令,IP中内容可由BIU自动修改;FLAG
用于反映指令执行结果或控制指令执行的形式:
表标志寄存器FLAG中标志位的含义和作用
标志位含义作用
CF=1,指令执行结果在最高位上产生一个进位或借位;CF进位标志
CF=0,则无进位或借位产生
PF=1,结果低8位含偶数个1;PF=0,表示结果低8位PF奇偶标志
含奇数个1
AF=1,运算结果的低4位产生了一个进位或借位;AF=0,AF辅助进位标志
则无此进位或借位
ZF零标志ZF=1,运算结果为零;ZF=0,则运算结果不为零
SF符号标志SF=1,运算结果为负数;SF=0,则结果为正数
OF溢出标志OF=1,带符号数在进行运算时产生了溢出;OF=0,则无
溢出
TF陷阱标志
TF=1,8086CPU处于单步工作方式;TF=0,8086CPU正
常执行程序
IF中断允许标志
IF=1,允许CPU接受外部从INTR引脚上发来的可屏蔽
中断请求信号;IF=0,则禁止接受可屏蔽中断请求
DF方向标志DF=1,字符串操作指令按递减的顺序对字符串进行处理;DF=0,字符串操作指令按递增的顺序进行处理
为了实现寻址1MB存储器空间,8086CPU将1MB的存储空间分成若干个逻辑段进行管理,4个16位的段寄存器来存放每一个逻辑段的段起始地址。
CPU规定4个段寄存器存放当前可寻址的段基址:
代码段寄存器CS :存放程序代码段起始地址的高16位
数据段寄存器DS:存放数据段起始地址的高16位
堆栈段寄存器SS:存放堆栈段起始地址的高16位
扩展段寄存器ES:存放扩展数据段起始地址的高16位
5简述8086系统中物理地址的形成过程。8086系统中的物理地址最多有多少个逻辑地址呢
答:
8086系统中的物理地址是由20根地址总线形成的。8086系统采用分段并附以地址偏移量办法形成20位的物理地址。
采用分段结构的存储器中,任何一个逻辑地址都由段基址和偏移地址两部分构成,都是16位二进制数。通过一个20位的地址加法器将这两个地址相加形成物理地址。具体做法是16位的段基址左移4位(相当于在段基址最低位后添4个“0”),然后与偏移地址相加获得物理地址。
由于8086CPU的地址线是20根,所以可寻址的存储空间为1M字节,即8086系统的物理地址空间是1MB。逻辑地址由段基址和偏移地址两部分构成,都是无符号的16位二进制数。程序设计时采用逻辑地址,也是1MB。
6.8086系统中的存储器为什么要采用分段结构有什么好处
答:
8086CPU中的寄存器都是16位的,16位的地址只能访问64KB的内存。8086系统中的物理地址是由20根地址总线形成的,要做到对20位地址空间进行访问,就需要两部分地址。
采用段基址和偏移地址方式组成物理地址的优点是:满足对8086系统的1MB 存储空间的访问,同时在大部分指令中只要提供16位的偏移地址即可。
8. 8086工作在最小模式和最大模式系统中的主要区别是什么和有什
么主要特点
【解答】
两种模式的主要区别是:
8086工作在最小模式时,系统只有一个微处理器,且系统所有的控制信号全部由8086 CPU提供;在最大模式时,系统由多个微处理器/协处理器构成的多机系统,控制信号通过总线控制器产生,且系统资源由各处理器共享。
8086CPU工作在哪种模式下通过CPU的第33条引脚MN/MX来控制:MN/MX=1,系统就处于最小工作模式;MN/MX=0,系统处于最大工作模式。
9在某系统中已知当前SS=2360H,SP=0800H,那么该堆栈段在存储器中的物理地址范围是什么若往堆栈中存入20个字节数据,那么SP的内容为什么值
答:
SS×10H+SP=23600H+0800H=23E00H
堆栈段在存储器中的物理地址范围是:23600H~23E00H
若往堆栈中存入20个字节数据那么SP的内容为:0800H-14H=07ECH。20的十六进制为14H。