【汇编】第二章问题与解答
lthero整理
1、8086/8088 cpu地址总线多少位?寻址范围?
地址总线一共20位,对应1MB寻址空间
2、8086/8088 cpu分为哪两个部分?各部分主要由什么组成?
1、执行部件
Execution Unit,EU
功能
EU的功能是执行指令。等待执行的指令从BIU的指令队列缓冲器中取得。
指令的执行结果或执行时需要的数据,由EU向BIU发出请求,由BIU向存储器或外部设备进行存取
对结果存,对需要的数据取
组成
算术逻辑运算器ALU
状态标志寄存器
暂存寄存器
通用寄存器组
AX,BX,CX,DX 可以寄存16位数据,也可以分成两半,分别寄存8位数据
SI,DI SI用来寄存源操作数的地址,DI用来寄存目的操作数的地址
EU控制单元
2、总线接口部件
Bus Interface Unit,BIU
功能
根据EU的请求,执行cpu对存储器或I/O接口的总线操作,完成数据的传入传出
组成
指令队列缓冲器
由6个8位寄存器组成,8086最多可以保存6B的指令码,8088最多保存4B的指令码;指令按”先进先出”原则存放和执行
16位指令指针寄存器IP
功能和程序计数器PC相近,IP总是保存着要执行的下一条指令的地址
地址产生器&段寄存器
由于IP和通用寄存器都是16位的,寻址范围只有64KB,是8086寻址1MB的一部分,因此,需要地址产生器用来产生20位实际地址
总线控制逻辑
EU与BIU是两个独立的部件,它们可以并行方式重叠操作
3、8086/8088的指令队列有什么用?长度分别为多少字节
用来暂存指令的暂存单元
8086可以保存6B指令码,8088可以保存4B指令码
4、8086/8088有几个通用寄存器?有几个变址寄存器?有几个指针寄存器?哪几个寄存器也可以作为地址寄存器?
通用寄存器
数据寄存器
AX=AH+AL AX累加器
BX=BH+BL BX 基数
CX=BH+BL CX计数
DX=DH+DL DX数据
指针寄存器
SP堆栈寄存器
BP基数寄存器
变址寄存器
SI 源变址
DI 目的变址
一共有8个通用寄存器
指针&变址寄存器可以作为地址寄存器
段寄存器
CS代码段
DS数据段
SS堆栈段
ES附加段
5、8086/8088有哪些标志位?含义和作用是什么?
状态标志位
进位carry flag
若CF=1,则最高位有一个进位或借位
奇偶标志parity flag
若PF=1,表示运算结果的低8位中,包含偶数个“1”
辅助进位标志auxiliary flag
若AF=1,表示低4位有一个进位或借位
零标志zero flag
若ZF=1,表示运算结果为0
符号标志sign flag
若SF=1,表示结果为负数,SF=0,结果为正数;它与运算结果最高位相同
溢出标志overflow flag
若OF=1,表示运算过程中有溢出
6、求下列运算各种状态标志
1278H+3469H
等于46E1
cf=0,pf=1,af=1,zf=0,sf=0,of=0
54E3H-27A0H
-27A0的补码为1101,1000,0110,0000
0101 | 0100 | 1110 | 0011 | |
---|---|---|---|---|
+ | 1101 | 1000 | 0110 | 0000 |
1 | 0010 | 1101 | 0100 | 0011 |
引脚信号和功能
AD15-AD0 分时复用的地址数据线,传送地址时三态输出,传送数据时双向三态输入输出
A19/S6-A16/S3 :分时复用的地址状态线。作地址线用时,A19-A16与AD15-AD0一起构成访问存储器的20位物理地址;
工作模式
8086/8088有两种工作模式:最大工作模式和最小工作模式
最小工作模式
系统只有一片8086/8088cpu,所有控制信号都由这个cpu产生
最大工作模式
除了一个cpu还有其它处理器(如8087)
总线操作和时序
1、系统的复位和启动操作
8086/8088的复位和启动操作是靠RESET引脚的触发信号完成,在复位时,CS指向0FFFFH;IP指向0000H;
因此,一般在0FFFFH处存在一条无条件转移指令,转移到系统程序入口,这样,系统一旦被启动,就自动进入系统程序。
2、总线操作
最小模式总线读操作
T1
cpu根据执行的是访问存储器还是访问I/O商品,首先使M/IO信号成为有效,一直持续到整个周期结束
并从AD0-AD15和地址复用线A19/S6-A16/S3 读取地址
T2
总线上输出的地址信号消失,AD0-AD15进入浮空状态,总线准备将由“输出地址”状态转成“读入数据”状态。因为刚开始AD0-AD15输出方向,需要转换成输入方向
RD(头上有杠)信号变成低电平(有效),信号被接到系统中所有的存储器和I/O接口芯片(浪费),此时用来开放数据输出缓冲器,将数据输出到数据总线
T3
经过T1、T2后,存储器或I/O接口,已经把数据送到了数据总线AD0-AD15
如果存储器或外设工作速度慢,不能在规定的4个周期内完成读入作为,需要在T3-T4之间加一个或多个 过度状态Tw
当cpu采集到,8284时钟发生器发出的一个READY信号等于1时,表示可以进入T4
T4
cpu对数据总线的数据进行采样,完成读取操作
最小模式总线写操作
写操作也包含四个状态,T1,T2,T3,T4。当存储器或外设速度慢时,也会在T3-T4间插入多个Tw
基本流程为
T1时,8086将地址信号送到地址/数据复用总线AD中
T2时,WR(头上有杠)信号变成低电平(有效),把存储器或I/O接口芯片上的输入数据缓冲器打开。
T2直到T4将数据信号输出到AD线上,再把AD线上输出的数据写入到存储器或I/O端口。
最大模式总线读操作
最大模式下的逻辑与最小模式是一样的,但要考虑cpu和总线控制器两者产生的信号。
cpu还是提供RD(头上有杠)信号,总线控制器在产生存储器读信号MRDC和I/O端口读信号IODC
MRDC和IODC信号可以指出具体由哪个设备的读信号,在T2步骤就不用让全部的接口都接收RD信号,信号的交流性也更好了
80x86存储器组织
如果存入数据为8位的字节,按顺序存放就行
如果存入数据为16位的字,需要把字的高位字节存放高地址单元,低位字节放到低地址单元
7、什么是逻辑地址?什么是物理地址?有什么关系?各用在何处?
物理地址
cpu和存储器进行数据交换时使用的地址。
逻辑地址
是产生物理地址用到的两个地址分量:段首地址和偏移量
一个存储单元只有唯一编码的物理地址,但一个物理地址可以对应多个逻辑地址。
如:物理地址11245H,可以是段首为1123H,偏移量为15;或者段首为1124H,偏移量为05;
8、若CS=5200H,物理地址为5B230H,则CS的内容被设为7800H时,物理地址为?
公式:物理地址=CS*16+IP
IP=5B230-52000H
IP=9230H
当CS为7800H时
物理地址为=7800H*16+9230=81230H
9、8086最小模式与最大模式特点和区别是什么?
最小模式
只有一个处理器8086,所有的控制信号全都由8086给出
最大模式
除了8086,系统中还有其它的协处理器。控制信号由总线控制器给出
10、8086cpu读写总线周期包含多少个时钟周期?什么情况下需要插入Tw ?插入多少个?什么时候会有空闲状态T1?
包含四个时钟周期
在存储器或外部设备工作速度慢,不能与cpu速度匹配时,需要插入Tw调整
插入多少个Tw,取决于存储器或外部设备是否准备好
如果一个总线周期结束,但并未立即执行下一个总线周期,此时T1
共有 0 条评论