预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共107页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第2章8086系统结构2.18086CPU结构2.1.1微处理器(CPU)的典型结构 微处理器(cpu)的典型结构*在微处理器(CPU)内部,三部分之间的信息交换是采用总线结构来实现的,总线是各组件之间信息传输的公共通路,这里的总线称为内部总线,用户无法控制内部总线的工作。工作过程 取指令→执行指令→取指令→执行指令、、、 取指令阶段(CPU读内存操作):执行指令阶段: 经译码后的指令,由控制电路发出控制信号去执行。2.1.2Intel8086/8088微处理器功能结构一、8086/8088CPU的内部结构功能:负责与M、I/O端口传送数据,完成内外信息交换。具体讲,即: ①取指令②传送数据③形成物理地址 *总线接口部件要从内存取指令送到指令队列; *CPU执行指令时,要配合执行部件从指定的内存单元 或者外设端口中取数据,将数据传送给执行部件; *或把执行部件的操作结果传送给指定的M或I/O口。 组成: 4个段地址寄存器(CS、DS、ES、SS) 16位指令指针寄存器IP 20位的地址加法器 (16d段地址+偏移地址=物理地址) 6字节(8086)或4字节(8088)的指令队列, 总线控制电路: 处理器与外界总线联系的转接电路。 包括三组总线: 20位地址总线 16位(8086)或8位(8088)双向数据总线 一组控制总线。两点说明:  指令队列 8086的指令队列为6个字节, 8088的指令队列为4个字节。 不论是8086还是8088都会在执行指令的同时从内存中取下一条或几条指令,取来的指令放在指令队列中,使BIU具有预取指令的功能,是一种先进先出(FIFO)的数据结构。  指令执行顺序 顺序指令执行:指令队列存放紧接在执行指令后面的那一条指令。 执行转移指令:BIU清除指令队列中的内容,从新的地址取入指 令,立即送往执行单元,然后再从新单元开始重 新填满队列。2、执行单元EU(ExecutionUnit) 组成: 4个通用寄存器:AX、BX、CX、DX 4个专用寄存器:BP、SP、SI、DI 标志寄存器(FLAGSorPSW): 9个标志位,其中6个条件标志位用于存放结果状态。 算术逻辑单元: 16位加法器,用于对寄存器和指令操作数进行算术或逻辑运算。 EU控制系统: 接受从总线接口单元的指令队列中取来的指令代码, 对其译码和向EU内各有关部分发出时序命令信号,协调执行指令规定的操作。小结: 8086/8088取指部分与执行部分是分开的。即BIU和EU并行操作,取指和执行可以重迭,大大减少了等待取指所需的时间,提高了CPU的利用率。 在一条指令的执行过程中可以取出下一条(或多条)指令,指令在指令队列中排队; 在一条指令执行完成后,就可以立即执行下一条指令,减少CPU为取指令而等待的时间,提高CPU的利用率和整个运行速度。 重迭操作技术:一方面提高了整个执行速率,另一方面降低了与之相配的存储器的存取速度的要求。二、8086CPU的寄存器结构1、通用寄存器组 通用寄存器包括:4个16位寄存器 AX、BX、CX、DX。 2、指针和变址寄存器 地址指针寄存器:SP、BP。 变址寄存器包括:SI、DI。 3、段寄存器 段寄存器包括:CS、SS、DS、ES。 4、控制寄存器 控制寄存器包括:IP、PSW(FLAGS)。数据寄存器 AX、BX、CX、DX作为通用寄存器。 用来暂存计算过程中所用到的操作数,结果或其它信息。 访问形式: 可以用16位的访问; 或者可以用字节(8位)形式访问。 它们的高8位记作:AH、BH、CH、DH。 它们的低8位记作:AL、BL、CL、DL。AX——(Accumulator)作为累加器。 它是算术运算的主要寄存器, 所有I/O指令都使用这一寄存器与外部设备交换数据。 例: INAL,20H OUT30H,AX BX——(Base)用作基址寄存器使用。 在计算内存储器地址时,经常用来存放基址。 例: MOVAX,[BX+03H]CX——(Count)可以作计数寄存器使用。 在循环LOOP指令和串处理指令中用作隐含计数器。 例: MOVCX,200H AGAIN: …… …… LOOPAGAIN;(CX)-1(CX),结果0转AGAIN DX——(Data)可以作为数据寄存器使用。 一般在双字长乘除法运算时,把DX和AX组合在一起存放一个双字长(32位)数,DX用来存放高16位;对某些I/O操作DX可用来存放I/O的端口地址(口地址256)。 例: MULBX ;(AX)(BX)(DX)(AX) 例: INAL,DX段起始地址 SP、BP、SI、DI四个16位寄存器。 以字为单位在运算