960 likes | 1.15k Views
第四章. 典型的 CPU 及指令系统. 第四章的内容章节. 4.1 、 8086/8088CPU 4.2 、主存贮器 4.3 、 8088/8086 堆栈 4.4 、 8088/8086 指令系统 4.5 、提高 CPU 性能的一些措施. 第三章的模型计算机 CPU 图. IBM 公司于 1981 年 8 月 12 日所推出的第一台 IBM PC——5150 1985 年,中国自行研制成功了第一台微型计算机,长城的 0520. 第一台 IBM PC. 4.1 、 8086/8088CPU (主要内容). 4.1.1 8086/8088CPU 的结构
E N D
第四章 典型的CPU及指令系统
第四章的内容章节 • 4.1、8086/8088CPU • 4.2、主存贮器 • 4.3、8088/8086堆栈 • 4.4、8088/8086指令系统 • 4.5、提高CPU性能的一些措施
IBM公司于1981年8月12日所推出的第一台IBM PC——5150 1985年,中国自行研制成功了第一台微型计算机,长城的0520
4.1、8086/8088CPU(主要内容) • 4.1.1 8086/8088CPU的结构 1.8086/8088的内部结构 2. 8086/8088主存地址的形成 • 4.1.2 8086/8088寄存器 1.段寄存器 2.通用寄存器 3.用于控制的寄存器 ————8086/8088CPU
————8086/8088CPU 8088/8086
————8086/8088CPU 8088/8086
8088/8086 ————8086/8088CPU
8088/8086 ————8086/8088CPU
8088/8086 ————8086/8088CPU
————8086/8088CPU IBM公司于1981年8月12日所推出的第一台PC机的主板图
4.1、8086/8088CPU(概述) 相同点: 都是16位机,外部地址线都是20条。 内部结构基本相同
————8086/8088CPU 4.1、8086/8088CPU 不同点: 最主要的区别就是系统总线中的数据线8086是16位,而8088地址线是8位。 此外,8088/8086都是16位宽度的计算机 但常常称8088是准16位机
————8086/8088CPU 4.1.1、8086/8088CPU的结构 1.8086/8088的内部结构 流水线式的取指-执行
1.EU 2.BIU ————8086/8088CPU
————8086/8088CPU 1.8086/8088的内部结构 1.EU(Execute Unit) • 从指令队列里取出指令代码,由EU控制器进行译码后产生对应的控制信号到各部件以完成指令规定的操作 • 对操作数进行算逻运算,并将运算结果的特征状态存放在标志寄存器中 • 由于EU不直接与系统总线连接,由此当需要与主存储器或I/O端口传送数据时,EU向BIU发出命令,并提供给BIU16位有效地址与传送的数据
————8086/8088CPU 1.8086/8088的内部结构 2.BIU(Bus Interface Unit) • 从主存取出指令送到指令队列中排队 • 从主存或I/O端口取操作数或存放运算结果 • 计算并形成访问贮存的20位物理地址
————8086/8088CPU 2. 8086/8088主存地址的形成 先给大家学习以下计算机科学中的量词 210=1024=1K 220=1024K=1M 230=1024M=1G 我们学习的8088/8086有20根地址线,可以将主存储器编上220个内存单元,即1M内存,即使有多于1M内存的内存,对于8088/8086来说,也是浪费。
2. 8086/8088主存地址的形成 现在有一个问题,20根地址线需要一次提供20个信号,但是我们的计算机是16位宽度,16位的CPU宽度如何由CPU提供20位的地址信号呢? ? 16位 20位 ————8086/8088CPU
2. 8086/8088主存地址的形成 其实答案很简单,一个寄存器的宽度是16位,两个寄存器不就是32为宽度了吗 我们没有用两位寄存器并在一起来提供32位的信号,而让一个20位的寄存器和一个16为寄存器进行加法来得到一个20位的地址信号 ————8086/8088CPU
2. 8086/8088主存地址的形成 ————8086/8088CPU
2. 8086/8088主存地址的形成 ————8086/8088CPU
半导体主存贮器的发展1 ————8086/8088CPU
半导体主存贮器的发展2 ————8086/8088CPU
半导体主存贮器的发展3 ————8086/8088CPU
半导体主存贮器的发展4 ————8086/8088CPU
2. 8086/8088主存地址的形成 我们把提供一个20位地址的两个寄存器中的值分别称之为: 20位寄存器中的值称之为段基址(Segment base value) 16位寄存器中的值称之为偏移量(Offset)或有效地址(Effective address) 段基址是由四个段寄存器提供20位的高16位,低四位补0形成的 偏移量是由CPU内的EU部分提供的 ————8086/8088CPU
4.1.2 8086/8088寄存器 1.段寄存器 2.通用寄存器 (1)地址指针寄存器 (2)数据寄存器 3.用于控制的寄存器 (1)指令指针IR (2)标志寄存器FR ————8086/8088CPU
————8086/8088CPU 1.段寄存器 2.通用寄存器 (1)地址指针寄存器 (2)数据寄存器 3.用于控制的寄存器 (1)指令指针IR (2)标志寄存器FR
1.段寄存器 四个段寄存器都可以提供16位信号,这个二进制数再加上四位为0的低位就可以行成段基址,1M的内存最多可有64K个段基址,每个段基址都可以加上一个16位的值(小于64K)最终形成20位的物理地址 ————8086/8088CPU
————8086/8088CPU 1.段寄存器
2.通用寄存器 (1)地址指针寄存器 (2)数据寄存器 ————8086/8088CPU
————8086/8088CPU (1)地址指针寄存器 (2)数据寄存器 2.通用寄存器
————8086/8088CPU 3.用于控制的寄存器--(1)指令指针IR
3.用于控制的寄存器(2)标志寄存器FR ————8086/8088CPU
3.用于控制的寄存器(2)标志寄存器FR ————8086/8088CPU
3.用于控制的寄存器(2)标志寄存器FR ————8086/8088CPU
3.用于控制的寄存器 (2)标志寄存器FR • 进位标志位CF(Carry Flag) • 奇偶标志位PF(Parity Flag) • 辅助进位标志位(Auxiliary Flag) • 零值标志位(Zero Flag) • 符号标志位SF(Sign Flag) • 溢出标志位OF(Overflow Flag) • 单步(跟踪)标志位TF(Trae Flag) • 中断标志位IF(Interrupt –enable Flag) • 方向标志位DF(Direction Flag) ————8086/8088CPU
4.2、主存贮器 4.2.1 8086/8088主存储器的特点 4.2.2 主存储器的段结构 4.2.3 逻辑地址与物理地址 1.逻辑地址 2.物理地址 3.逻辑地址的来源
4.2.3 逻辑地址与物理地址 1.逻辑地址 段基值:偏移量 2.物理地址 3.逻辑地址的来源
4.3 8086/8088堆栈 4.3.1堆栈组织 4.3.2堆栈操作 1.压栈 2.出栈