微机原理与接口技术部分答案第二版
主编:龚尚福
2.2 8086 微处理器由哪几部分组成?各部分的功能是什么? 16355 【解】:按功能可分为两部分:总线接口单元 单元 EU( Execution Unit )。
总线接口单元BIU是8086 CPU在存储器和I/O设备之间的接口部件,负责对 全部引脚的操作,即 8086 对存储器和 I/O 设备的所有操作都是由 BIU 完成的。所 有对外部总线的操作都必须有正确的地址和适当的控制信号,
BIU中的各部件主要
BIU(Bus Interface Unit
)和执行
是围绕这个目标设计的。 它提供了 16位双向数据总线、 20位地址总线和若干条控 制总线。
其具体任务是:负责从内存单元中预取指令,并将它们送到指令队列缓冲器 暂存。CPU执行指令时,总线接口单元要配合执行单元,从指定的内存单元或
I/O
端口中取出数据传送给执行单元,或者把执行单元的处理结果传送到指定的内存 单元或 I/O 端口中。
执行单元EU中包含1个16位的运算器ALU 8个16位的寄存器、1个16位 标志寄存器 FR、1 个运算暂存器和执行单元的控制电路。这个单元进行所有指令 的解释和执行,同时管理上述有关的寄存器。
EU对指令的执行是从取指令操作码
开始的,它从总线接口单元的指令队列缓冲器中每次取一个字节。如果指令队列 缓冲器中是空的,那么EU就要等待BIU通过外部总线从存储器中取得指令并送到 EU,通过译码电路分析,发出相应控制命令,控制
2.3
简述8086 CPU的寄存器组织。
16 位数据寄存 器使
ALU数据总线中数据的流向。
【解】:(1)通用寄存器:通用寄存器又称数据寄存器,既可作为
用,也可作为两个 8 位数据寄存器使用。当用作 16 位时,称为 AX、BX、CX、
D% 当用作8位时,AH BH CH DH存放高字节,AL、BL、CL、DL存放低字节, 并且可独立寻址。这样, 4个 16位寄存器就可当作 8个 8位寄存器来使用。
(2) 段寄存器:段寄存器共有 4个CS DS SS ES代码段寄存器 CS表示 当前使用的指令代码可以从该段寄存器指定的存储器段中取得,相应的偏移值则 由IP提供;堆栈段寄存器SS指定当前堆栈的起始地址;数据段寄存器 前程序使用的数据所存放段的起始地址;
DS指示当
附加段寄存器ES则指出当前程序使用附
加段地址的起始位置,该段一般用来存放原始数据或运算结果。
(3) 指针和变址寄存器:堆栈指针 SP用以指出在堆栈段中当前栈顶的地址。 入栈(PUSH和出栈(POP指令由SP给出栈顶的偏移地址。基址指针 BP指出要 处理的数据在堆栈段中的基地址,故称为基址指针寄存器。变址寄存器 用来存放当前数据段中某个单元的偏移量。
(4) 指令指针与标志寄存器:指令指针 IP的功能跟Z80 CPU中的程序计数 器PC的功能类似。正常运行时,IP中存放的是BIU要取的下一条指令的偏移地址。 它具有自动加 1 功能, 每当执行一次取指令操作时, 它将自动加 1,使它指向要取 的下一内存单元,每取一个字节后 IP 内容加 1,而取一个字后 IP 内容则加 2。某 些指令可使 IP 值改变,某些指令还可使 IP 值压入堆栈或从堆栈中弹出。标志寄 存器FLAGS是 16位的寄存器,8086共使用了 9个有效位,标志寄存器格式如图 2.5 所示。其中的 6位是状态标志位, 3位为控制标志位。状态标志位是当一些指 令执行后,表征所产生数据的一些特征。而控制标志位则可以由程序写入,以达 到控制处理机状态或程序执行方式的表征。
2.4
试述8086 CPU标志寄存器各位的含义与作用
SI 和 DI
解】:(1) 6 个状态标志位的功能分别叙述如下:
CF(Carry Flag) ——进位标志位。当执行一个加法 ( 或减法 ) 运算,使最高位 产生进位
(或借位)时,CF为1;否则为0o
PF(Parity Flag) ——奇偶标志位。该标志位反映运算结果中 1 的个数是偶数 还是奇数。当指令执行结果的低 AF(Auxiliary carry Flag)
8位中含有偶数个1时,PF=1;否则PF=0b ------ 辅助进位标志位。当执行一个加法
(或减法)
运算,使结果的低4位向高4位有进位(或借位)时,AF=1;否则AF=0b
ZF(Zero Flag)――零标志位。若当前的运算结果为零,
ZF=1;否则ZF=0。
SF(Sig n Flag)――符号标志位。它和运算结果的最高位相同。
OF(Overflow Flag) ——溢出标志位。当补码运算有溢出时,0F=1;否则OF=(b (2) 3个控制标志位用来控制 CPU的操作,由指令进行置位和复位。
DF(Direction Flag) ――方向标志位。它用以指定字符串处理时的方向,当 该位置“ 1”时,字符串以递减顺序处理,即地址以从高到低顺序递减。反之,则 以递增顺序处理。
IF(Interrupt enable Flag) ------------ 中断允许标志位。它用来控制 8086是否允 许接收外部中断请求。若IF=1,8086能响应外部中断,反之则不响应外部中断。
注意:IF的状态不影响非屏蔽中断请求(NMI)和CPU内部中断请求。
TF(Trap Flag)――跟踪标志位。它是为调试程序而设定的陷阱控制位。当该 位置“1”时,8086 CPU处于单步状态,此时 CPU每执行完一条指令就自动产生一 次内部中断。当该位复位后,
CPU恢复正常工作。
2.5 8086 中,存储器为什么采用分段管理?
【解】:8086/8088的地址总线宽度为 20位,其最大寻址空间是
1?MB而其他微
处理器则在实模式下只能访问前 1 MB 的存储器地址。实际上,实模式就是为