[工学]北航微机原理课件第二讲

上传人:tia****nde 文档编号:71249083 上传时间:2019-01-19 格式:PPT 页数:41 大小:748.31KB
返回 下载 相关 举报
[工学]北航微机原理课件第二讲_第1页
第1页 / 共41页
[工学]北航微机原理课件第二讲_第2页
第2页 / 共41页
[工学]北航微机原理课件第二讲_第3页
第3页 / 共41页
[工学]北航微机原理课件第二讲_第4页
第4页 / 共41页
[工学]北航微机原理课件第二讲_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《[工学]北航微机原理课件第二讲》由会员分享,可在线阅读,更多相关《[工学]北航微机原理课件第二讲(41页珍藏版)》请在金锄头文库上搜索。

1、第二讲8086/8088CPU的结构 2009.2.24(星期二),主要内容: 1.复习三种码制之间关系及特点 2.第三章 8086/8088微处理器及其系统,三种码制之间关系及特点: 正数:原,反,补相同 负数:原,反,补不同,但最高位为1。 负数: 原反, 符号位不变,尾数按位求反 反原 ,符号位不变,尾数求反. 原补 ,符号位不变,尾数按位求反+1 补原, 符号位不变,尾数求反+1,X补1 000 0000,求二进制的真值。 X原1 111 111111000 0000128 真值为绝对值,为128。,5.判断溢出的方法:根据结果判断溢出(运算结果超出了数据宽度表示的范围127D128)

2、 V=CD7 CD6,CD7 CD6不等,V=1表示有溢出。 两正数相加、两负数相加、正数与负数相加的正数几种情况分析得到。,例:正数溢出的情况,X=0100 0000 (64)10 Y=01000001 (65) 10 0100 0000补码 + 0100 0001补码 = 1000 0001 补码(-127) 10 , CD7=0,CD6=1,V=1,有溢出,需要进行调整。,第三章 8086/8088微处理器及其系统 分五部分讨论: (一) 8088编程结构 (二) 8088的寄存器结构 (三)引脚功能与典型系统结构 (四)存储器组织 (五)指令系统,本讲内容: 一、8086/8088微处

3、理器 1.内部结构 2.寄存器结构 概述 INTEL 8086为16位机. INTEL 8088(简称8088)是一种准16位微处 理器, 在INTEL8080与8085的基础上发展起来的。,8086/88结构特点: (1) 内部结构 是16位的 (内部寄存器,内部运算部件,内部操作按 16位设计); (2)外部数据总线8条,能处理16位数据,也能处理8位数据; (具有16位运算指令,包括*、/指令) (3) 汇编语言与8080/8085兼容,即能执行整套8080/8085的指令. 增加了许多16位操作指令; (4) 20条地址总线,直接寻址能力1M字节; (5) 40条引线封装; (6) 单

4、相时钟; (7) 电源为5V。 8086与8088的主要区别在于8086的外部数据总线16位。,(一)、8088编程结构 编程结构:从程序员和使用者的角度来看的结构。 这种结构与CPU内部的物理结构和实际布局有区别。 8088编程结构如下页图所示(P23) 分两部分: 1、总线接口单元 BIU(Bus Interface Unit) 2、执行部件 EU (Execution Unit),8086编程结构,1、总线接口单元 BIU(Bus Interface Unit) (1)功能:负责与 M、I/O 端口传送数据。 具体讲: 总线接口部件要从内存 取指令送到指令队列; CPU执行指令时,要配合

5、执行部件从指定的内存单元 或者外设端口中取数据,将数据传送给执行部件; 或把执行部件的操作结果传送给指定的M或I/O口。,(2)组成 4 个段地址寄存器(CS、DS、ES、SS), 16位指令指针寄存器IP, 20位的地址加法器(16d段地址+偏移地址物理地址), 6字节(8086)或4字节(8088)的指令队列, 总线控制电路: 处理器与外界总线联系的转接电路。 包括三组总线: 20 位地址总线, 16/8 位双向数据总线,一组控制总线。,(3 )二点说明 指令队列 8086 的指令队列为6个字节, 8088 的指令队列为4个字节。 不论是8086还是8088都会在执行指令的同时从内存中取下

6、一条或几条指令,取来的指令放在指令队列中,使 BIU 具有预取指令的功能,是一种先进先出(FIFO)的数据结构。 指令执行顺序 顺序指令执行:指令队列存放紧接在执行指令后面的那一条指令。 执行转移指令:BIU 清除指令队列中的内容,从新的地址取入指 令,立即送往执行单元,然后再从新单元开始重 新填满队列。,2、EU (Execution Unit)执行单元 (1)、 功能:负责指令执行。 (2)、 组成: 4个通用寄存器:AX、BX、CX、DX 4个专用寄存器:BP、SP、SI、DI, 标志寄存器(PSW): 9个标志位,其中6个条件标志位用于存放结果状态, 算术逻辑单元: 16 位加法器,用

7、于对寄存器和指令操作数进行算术或逻辑运算, EU 控制系统: 接受从总线接口单元的指令队列中取来的指令代码, 对其译码和向 EU 内各有关部分发出时序命令信号, 协调执行指令规定的操作。,由此可见,8086/8088取指部分与执行部分是分开的。 在一条指令的执行过程中可以取出下一条(或多条)指令,指令 在指令队列中排队; 在一条指令执行完成后,就可以立即执行下一条指令,减少CPU为取指令而等待的时间,提高CPU的利用率和整个运行速度。 8086/8088微处理器: BIU和EU分开,取指和执行可以重迭, 大大减少了等待取指所需的时间,提高CPU的利用率。 重迭操作技术:一方面提高了整个执行速率

8、, 另一方面降低了与之相配的存储器的存取速度的要求。,(二 ) 、 8088的寄存器结构 (P22),PSW(程序状态字)结构,1、通用寄存器 通用寄存器包括: 数据寄存器、地址指针寄存器、变址寄存器。 数据寄存器包括: AX 、BX 、CX 、DX 。 地址指针寄存器包括: SP 、 BP 。 变址寄存器包括: SI 、 DI 。 2、段寄存器 段寄存器包括: CS 、 SS 、 DS 、 ES 。 3、控制寄存器 控制寄存器包括:IP 、PSW。,1、通用寄存器 (1)数据寄存器 AX、BX、CX、DX 作为通用寄存器。 用来暂存计算过程中所用到的操作数,结果或其它信息。 访问形式: 可以

9、用16位的访问; 或者可以用字节(8位)形式访问, 它们的高8位记作 : AH 、 BH 、 CH 、 DH 。 它们的低8位记作 : AL 、BL 、CL 、DL 。,AX(Accumulator)作为累加器。 它是算术运算的主要寄存器, 所有I/O指令都使用这一寄存器与外部设备交换数据。 例: IN AL , 20H OUT 30H , AX BXBase用作基址寄存器使用。 在计算内存储器地址时,经常用来存放基址。 例: MOV AX, BX+03H,CXCount可以作计数寄存器使用。 在循环LOOP指令和串处理指令中用作隐含计数器。 例: MOV CX , 200H AGAIN: L

10、OOP AGAIN ;(CX)-1(CX),结果0转AGAIN DXData可以作为数据寄存器使用。 一般在双字长乘除法运算时, 把DX和AX组合在一起存放一个双字长(32位)数,DX用来存放高16位; 对某些I/O操作DX可用来存放I/O的端口地址(口地址 256)。 例: MUL BX ; (AX)(BX)(DX)(AX) 例: IN AL , DX,(2)地址指针与变址寄存器: 段起始地址 SP、BP、SI、DI 四个16位寄存器。 以字为单位在运算过程中存放操作数, 经常用以在段内寻址时提供偏移地址。 段内偏移地址 段地址 :只取段起始地址高16位值。 偏移地址:指在段内某内存单元物理

11、地址相对段起始地址的偏移值。,高16位值 0000B,地址指针寄存器(SP 、 BP ) SP(stack pointer)堆栈指针寄存器 用来指示栈顶的偏移地址, 必须与SS段寄存器联合使用确定实际地址。 堆栈和指针如下页图所示。 BP(base pointer)基址指针寄存器 可以与SS寄存器联合使用来确定堆栈段中某一存储器单元地址。,变址寄存器(SI 、 DI) SISource Index Register 源变址寄存器。 DIDestination Index 目的变址寄存器。 使用场合:常用于变址寻址。 一般与DS联用,用来确定数据段中某一存储单元的地址, SI , DI具有自动增

12、量和自动减量功能. 例: MOV AX, SI,2、段寄存器 段寄存器: 4个16位段寄存器CS、DS、SS、ES。 用来识别当前可寻址的四个段,不可互换的使用。 CSCode Segment Register 代码段寄存器 用来识别当前代码段(程序一般放在代码段)。 DSData Segment Register数据段寄存器 用来识别当前数据段寄存器。 SSStack Segment Register堆栈段寄存器, 用来识别当前堆栈段。 ESExtra Segment Register附加段寄存器, 用来识别当前附加段。,3、控制寄存器 控制寄存器:IP 、 PSW IPInstructio

13、n Pointer指令指针寄存器 用来存储代码段中的偏移地址; 程序运行过程中IP始终指向下一次要取出的指令偏移地址。 IP要与CS寄存器相配合才能形成真正的物理地址。 PSW(Processor States Word Program) 程序状态字寄存器, 16位寄存器。 由条件码标志FLAG、控制标志构成。 只用了其中9位, 6位条件码标志 , 3位控制标志。如下表示。,条件码标志: 用来记录程序中运行结果的状态信息作为 后续条件转移指令的转移控制条件。称为条件码。 条件码包括6位:CF 、 PF 、 AF 、 ZF 、 SF 、 OF 。 OF(Overflow Flag)溢出标志(一般

14、指补码溢出) OF=1:在运算过程中,如操作数超过了机器表示的范围称为溢出。 OF=0:在运算过程中,如操作数未超过了机器能表示的范围称为 不溢出。 字节允许范围 -128+127,字运算范围 -32768+32767 。, SF(Sign Flag)符号标志 SF=1:记录运算结果的符号为负。 SF=0:记录运算结果的符号为正。 ZF(Zero Flag)零标志 ZF=1:运算结果为0。 ZF=0:运算结果不为0。 CF(Carry Flag)进位标志 CF=1:记录运算时从最高有效位产生进位值。 CF=0:记录运算时从最高有效位不产生进值。, AF(Auxiliary Carry Flag

15、)辅助进位标志 AF=1:记录运算时第3位(半个字节)产生进位值。 AF=0:记录运算时第3位(半个字节)不产生进位值。 PF(Parity Flag)奇偶标志 PF=1: 结果操作数低8位中有偶数个1。 PF=0: 结果操作数低8位中有奇数个1。 用来为机器中传送信息时可能产生的代码出现情况提供检验条件。,控制标志: 对控制标志位进行设置后,对其后的操作起控制作用。 控制标志位包括3位: TF、 IF 、 DF 。 跟踪(陷阱)标志TF、中断标志IF 、方向标志 DF 。 TF(Trap Flag)跟踪(陷阱)标志位 TF=1 ,每执行一条指令后,自动产生一次内部中断, 使CPU处于单步执行

16、指令工作方式,便于进行程序调试,用户能检查程序。 TF=0, CPU正常工作,不产生陷阱。,IF(Interupt Flag)中断标志 位 IF=1, 允许外部可屏蔽中断。CPU可以响应可屏蔽中断请求。 IF=0, 关闭中断。CPU禁止响应可屏蔽中断请求。 IF的状态对不可屏蔽中断和内部软中断没有影响。 DF(Direction Flag)方向标志位 DF=1,每次串处理操作后使变址寄存器SI和DI减量,使串处理从 高地址向低地址方向处理。 DF=0,每次串处理操作后使变址寄存器SI和DI增量, 使串处理从 低地址向高地址方向处理。 DF方向标志位是在串处理指令中控制处理信息的方向用的。,控制信

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号