【汇编】第二章问题与解答

汇编第二章问题与解答

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指向0FFFFHIP指向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(头上有杠)信号,总线控制器在产生存储器读信号MRDCI/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空闲

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录