微处理器的内部结构
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3AH+7CH=B6H,就是58+124=182, 已经超出-128~+127范围,产生溢出,故OF=1;补 码B6H表达真值是-74,显然运算结果也不正确
3.2.2
3. 什么是溢出
• 0B6H=10110110B,最高位为1, 作为有符号数是负数 • 对0B6H求反加1等于: 01001001B+1=01001010B=4AH=74 • 所以,0B6H表达有符号数的真值为-74
CF ZF SF PF OF AF
控制标志--可由程序根据需要用指令设置, 用于控制处理器执行指令的方式
DF
15 12
IF
11 10
TF
标志寄存器FLAGS
9 8 7 6 5 4 3 2 1 0
OF DF IF TF SF ZF
AF
PF
CF
3.2.2
3. 进位标志CF(Carry Flag)
当运算结果的最高有效位有进位(加法)或借 位(减法)时,进位标志置1,即CF=1; 否则CFHale Waihona Puke Baidu0
3.2.1
8086的功能结构 指令队列的引入使得EU和BIU可并行工作,即BIU在读
指令时,并不影响EU单元执行指令,EU单元可以连续不断
地直接从指令队列中取到要执行的指令代码,从而减少了
CPU为取指令而等待的时间,提高了CPU的利用率,加快了
整机的运行速度。
3.2.1
8086的功能结构
2.执行单元EU 执行单元EU不与系统外部直接相连,它的功能只是负责执 行指令。EU由下列部件组成: (1) 16位算术逻辑单元(ALU):用于进行算术和逻辑运算。 (2) 16位标志寄存器FLAGS:用来存放CPU运算的状态特征 和控制标志。 (3) 数据暂存寄存器:协助ALU运算,暂存参加运算的数据。 (4) 通用寄存器:包括4个16位数据寄存器AX、BX、CX、 DX和4个16位指针与变址寄存器SP、BP与SI、DI。 (5) EU控制电路:它是控制、定时与状态逻辑电路
36
64 GB
2005
64
—
64
64
36
64 GB
3.2
微处理器的基本结构
指 令 寄 存
指 令 译 码 时序 和 控制 逻辑 地址 总线 控制 数据 总线 控制 标志寄存器
控制总线
通用 寄存器组
地址 寄存器组
地址总线
内部数据总线
数据总线
暂存器
累加器
ALU
1.算术逻辑单元(运算器) 2.寄存器组 3.指令处理单元(控制器)
型 号 8086 8088 80286 80386 80486 发布 年份 1978 1979 1982 1985 1990 字长 /位 16 准 16 16 32 32 集成度 /(万/片) 2.9 2.9 13.4 27.5 120~160 主频 /M Hz 4.77 4.77 6~20 12.5~33 25~100 内数据 总线宽 度/位 16 16 16 32 32 外数据 总线宽 度/位 16 8 16 32 32 地址总 线宽度 /位 20 20 24 32 32 寻址 空间 1 MB 1 MB 16 M B 4 GB 4 GB 高速缓冲存储 器(Cache) 无 无 无 有 8 KB
3.2.2
2.
指令指针寄存器(IP)
IP(Instruction Pointer)为指令指针寄 存器,指示主存储器指令的位置 随着指令的执行,IP将自动修改以指示下 一条指令所在的存储器位置 IP寄存器是一个专用寄存器 IP寄存器与CS段寄存器联合使用以确定下 一条指令的存储单元地址
3.2.2
3.
4个数据寄存器还可以分成高8位和低8位两 个独立的寄存器,这样又形成8个通用的8 位寄存器
AX: AH AL CX: CH CL BX: BH BL DX: DH DL
3.2.2 (1)数据寄存器(AX、BX、CX、DX)
AX称为累加器(Accumulator)
使用频度最高。用于算术、逻辑运算以及与外设传送信 息等
3.1 微处理器简介 表3.1 80x86系列微处理器概况
型 号 发布 年份 1993 1997 字长 /位 32 32 集成度 /(万/片) 310~330 750 主频 /MHz 60~166 233~333 内数据 总线宽 度/位 32 32 外数据 总线宽 度/位 64 64 地址总 线宽度 /位 32 36 寻址 空间 4 GB 64 GB 高速缓冲存储 器(Cache) 8 KB 数据 8 KB 指令 32 KB 和 512 KB 二级高速 缓存 32 KB 一级缓 存和 512 KB 二级缓存 32 KB 一级缓 存和 512 KB 二级缓存 32 KB 一级缓 存和 1/2 MB 二级缓存 32 KB 一级缓 存和 2/4 MB 二级缓存
3.2.2
3.溢出的判断
判断运算结果是否溢出有一个简单的规则: 只有当两个相同符号数相加(包括不同符号数相 减),而运算结果的符号与原数据符号相反时, 产生溢出;因为,此时的运算结果显然不正确 其他情况下,则不会产生溢出 1:3AH+7CH=B6H 2:AAH+7CH 3:3AH-7CH 4:AAH-7CH=2DH 溢出 无溢出 无溢出 溢出
BX称为基址寄存器(Base address Register)
常用做存放存储器地址,在DS段中做数据指针
CX称为计数器(Counter)
作为循环和串操作等指令中的计数器
DX称为数据寄存器(Data register)
常用来存放双字长数据的高16位,或存放I/O地址
3.2.2
(2)变址寄存器(SI、DI)
3.2.1
8086的功能结构
一.总线接口单元BIU
总线接口单元BIU的功能是负责完成CPU与存储器或I/O 设备之间的数据传送。具体任务是: ① 指令队列出现空字节(8088CPU 1个空字节,8086CPU 2 个空字节)时,从内存取出后续指令。
② EU需要从内存或外设端口读取操作数时,根据EU给出
第3章
微处理器的内部结构
从应用角度(不是从内部工作原理)展开
典型8位微处理器的基本结构 8088/8086的功能结构 8088/8086的寄存器结构 8088/8086的存储器结构
为学习指令系统打好基础
3.1 微处理器简介 80x86微处理器是美国Intel 公司生产的系列微处理器。该 公司成立于1968年,1969年就设计了4位的4004 芯片,1973 年开发出8位的8080芯片,1978年正式推出16位的8086微处
Pentium (586) Pentium Ⅱ Pentium Ⅲ
1999
32
950
450
32
64
36
64 GB
Pentium 4 Pentium 4 6XX Pentium D(双核)
2000
32
4200
1500 3000~ 3800 2660~ 3600
32
64
36
64 GB
2005
64
—
64
64
3.2.2
3. 符号标志SF(Sign Flag)
运算结果最高位为1,则SF=1; 否则SF=0
有符号数据用最高有效位表示数据的符号 所以,最高有效位就是符号标志的状态
3AH+7CH=B6H,最高位D7=1:SF=1
84H+7CH=(1)00H,最高位D7=0:SF=0
3.2.2
3. 奇偶标志PF(Parity Flag)
3.2.2
3. 溢出和进位的区别
溢出标志OF和进位标志CF是两个意义 不同的标志 进位标志表示无符号数运算结果是否 超出范围,运算结果仍然正确 溢出标志表示有符号数运算结果是否 超出范围,运算结果已经不正确
3.2.2
3. 溢出和进位的对比
例1:3AH+7CH=B6H
无符号数运算: 58+124=182 范围内,无进位 有符号数运算: 58+124=182 范围外,有溢出
3.2.2
8086的寄存器结构
8088/8086的寄存器组有
8个通用寄存器 4个段寄存器 1个标志寄存器 1个指令指针寄存器
图示
他们均为16位!
汇编语言程序员看到的处理器,就是寄存器 所以,一定要熟悉这些寄存器的名称和作用
3.2.2 1.
通用寄存器
8086有8个通用的16位寄存器
(1)数据寄存器: AX BX CX DX (2)变址寄存器: SI DI (3)指针寄存器: BP SP
3.2.1
8086的功能结构
8086的内部结构从功能上分成两个单元
1. 总线接口单元BIU 管理8086与系统总线的接口 负责CPU对存储器和外设进行访问 2. 执行单元EU 负责指令的译码、执行和数据的运算
两个单元相互独立,分别完成各自操作, 还可以并行执行,实现指令预取(指令读取 和执行的流水线操作)
当运算结果最低字节中“1”的个数为 零或偶数时,PF=1;否则PF=0
PF标志仅反映最低8位中“1”的个数是 偶或奇,即使是进行16位字操作 3AH+7CH=B6H=10110110B 结果中有5个“1”,是奇数:PF=0
3.2.2
3. 溢出标志OF(Overflow Flag)
若算术运算的结果有溢出,则OF=1; 否则 OF=0
的地址从内存或外设端口读取数据供EU使用。 ③ EU的运算结果、数据或控制命令等由BIU送往指定的
内存单元或外设端口。
3.2.1
8086的功能结构
总 线 接 口 单 元 内 有 4 个 16 位 段 寄 存 器 : 代 码 段 寄 存 器 CS(Code Segment)、数据段寄存器DS(Data Segment)、堆栈段寄 存器SS(Stack Segment)和附加数据段寄存器ES(Extra Segment), 一个16位的指令指针寄存器IP(Instruction Pointer),一个20位地 址加法器,6字节指令队列缓冲器,一个与EU通讯的内部寄存 器以及总线控制电路等。
16位变址寄存器SI和DI 常用于存储器变址寻址方式时提供地址
SI是源地址寄存器(Source Index) DI是目的地址寄存器(Destination Index)
在串操作类指令中,SI、DI还有较特殊的 用法 现在不必完全理解,以后会详细展开
3.2.2
(3)指针寄存器(SP、BP)
指针寄存器用于寻址内存堆栈内的数据
例2:AAH+7CH=(1)26H
无符号数运算: 170+124=294 范围外,有进位 有符号数运算: -86+124=28 范围内,无溢出
3.2.2
3.溢出和进位的应用场合
处理器对两个操作数进行运算时,按照无 符号数求得结果,并相应设置进位标志CF; 同时,根据是否超出有符号数的范围设置 溢出标志OF 应该利用哪个标志,则由程序员来决定。 也就是说,如果将参加运算的操作数认为 是无符号数,就应该关心进位;认为是有 符号数,则要注意是否溢出
SP为堆栈指针寄存器(Stack Pointer),指示 堆栈段栈顶的位置(偏移地址) BP为基址指针寄存器(Base Pointer),表示 堆栈段中的数据指针
SP和BP寄存器与SS段寄存器联合使用以确 定堆栈段中的存储单元地址
堆栈(Stack)是主存中一个特殊的区域,采用 “先进后出”或“后进先出”存取操作方式、而 不是随机存取方式。用8088/8086形成的微机系统 中,堆栈区域被称为堆栈段
3AH + 7CH=B6H,产生溢出:OF=1 AAH + 7CH=(1)26H,没有溢出:OF=0
3.2.2
3. 什么是溢出
处理器内部以补码表示有符号数 8位表达的整数范围是:+127 ~ -128 16位表达的范围是:+32767 ~ -32768 如果运算结果超出这个范围,就产生了溢出 有溢出,说明有符号数的运算结果不正确
理器芯片,由此开始了Intel公司的80x86系列微处理器的生
产历史。本章简要介绍Intel公司80x86系列微处理器的发展 过程及其特性。 表3.1给出了80x86系列微处理器概况。下面通过对表中 有关技术数据的分析来说明Intel 80x86系列微处理器的发展 情况。
3.1 微处理器简介 表3.1 80x86系列微处理器概况
标志寄存器(F)
标志(Flag)用于反映指令执行结果 或控制指令执行形式 8086处理器的各种标志形成了一个16 位 的 标 志 寄 存 器 FLAGS ( 程 序状 态 字 PSW寄存器)
程序设计需要利用标志的状态
3.2.2
3. 标志寄存器-分类
状态标志--用来记录程序运行结果的状态 信息,许多指令的执行都将相应地设置它
3AH + 7CH=B6H,没有进位:CF = 0 AAH + 7CH=(1)26H,有进位:CF = 1
3.2.2
3. 零标志ZF(Zero Flag)
若运算结果为0,则ZF=1; 否则ZF=0
注意:ZF为1表示的结果是0
3AH+7CH=B6H,结果不是零:ZF=0
84H+7CH=(1)00H,结果是零:ZF=1