简述8086内部寄存器结构
8086结构
8086微处理器结构 2.1 8086微处理器结构 8086CPU的引脚 的引脚、 2.2 8086CPU的引脚、系统配置及时序 2.3 8086存储器组织 8086存储器组织
例3:判断下列两数相加后标志寄存器中各相关位的值。 :判断下列两数相加后标志寄存器中各相关位的值。
0 1 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1
+
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
最高位没有进位 ∴ CF=0; ; 位中1的个数为偶数个 低8位中 的个数为偶数个 ∴ PF=1; 位中 ; 第三位向第四位有进位 ∴ AF=1; ; 运算结果本身≠0 ∴ ZF=0; ; 运算结果本身 运算结果最高位为1 运算结果最高位为 ∴SF=1; ;
16位段地址寄存器: 16位段地址寄存器: 位段地址寄存器 CS-----------代码段寄存器 CS------代码段寄存器 DS-----------数据段寄存器 DS------数据段寄存器 ES-----------附加段寄存器 ES------附加段寄存器 SS-----------堆栈段寄存器 SS------堆栈段寄存器 16位指令指针寄存器IP:存放下一条要执行指令的偏移 16位指令指针寄存器IP:存放下一条要执行指令的偏移 位指令指针寄存器IP: 地址。 地址。 20位物理地址加法器:将16位逻辑地址变换成存储器 20位物理地址加法器 位物理地址加法器: 16位逻辑地址变换成存储器 写所需要的20位物理地址, 20位物理地址 读/写所需要的20位物理地址,实际上完成地址加法操 作。
1 80868088微处理器的内部结构
微机原理第2章8086/8088系统结构8086/8088微处理器的内部结构微机原理8086是Intel系列的16bit微处理器,属第三代。
它有16bit数据总线和20bit地址线,可寻址1M空间。
8088有8bit数据总线和20bit地址线,可寻址1M空间。
其内部有16bit数据总线。
AH AL BH BL SI ALU 运算数暂存器标志寄存器EU控制电路16位CSDSSS ES IP 内部暂存器8位1 2 3 4 5 6执行部件(EU )总线控制电路 指令队列缓冲器总线接口部件(BIU )通用寄存器加法器80888086累加器基址寄存器计数寄存器数据寄存器堆栈指针基址指针目的变址源变址AX BX CX DX微机原理CPUEUBIU •16位通用寄存器组(AX、BX、CX 、DX、SP、BP、SI、DI)•算术逻辑单元—ALU•暂存器•EU控制器•标志寄存器—FLAG•段寄存器组(CS,DS,SS,ES),指令指针—IP •地址加法器•指令队列•总线接口控制逻辑微机原理EU 部件不直接与外部总线相连。
它从BIU的指令队列中取指令和数据。
EU 负责指令的执行。
BIU 根据EU 的请求,完成CPU 与存储器或I/O 之间的数据传送。
功能:符号名称高8位符号低8位符号AX累加器AH AL BX基址寄存器BH BL CX计数寄存器CH CL DX数据寄存器DH DL这里的寄存器可以8位或16位参与操作。
符号名称SP堆栈指针寄存器BP基址指针寄存器SI源变址寄存器DI目的变址寄存器这里的寄存器只能以16位参与操作。
符号名称CS代码段寄存器DS数据段寄存器ES附加段寄存器SS堆栈段寄存器IP指令指针寄存器D15D14D13D12D11D10D9D8 x x x x OF DF IF TF D7D6D5D4D3D2D1D0 SF ZF x AF x PF x CF符号名称定义CF进位标志运算中,最高位有进位或借位时CF=1,否则CF=0 PF奇偶标志运算结果低8位“1”个数为偶数时PF=1,否则PF=0 AF辅助进位D3有向D4进(借)位时AF=1,否则AF=0ZF零标志运算结果每位均为“0”时ZF=1, 否则ZF=0SF符号标志运算结果的最高位为1时SF=1,否则SF=0OF溢出标志运算中产生溢出时OF=1, 否则OF=0符号名称功能TF陷阱标志TF=1将使CPU进入单步执行指令IF中断标志IF=1允许CPU响应可屏蔽中断DF方向标志DF=1将从高地址向低地址处理字符串所以:CF=0PF=1AF=1ZF=0SF=1OF=0微机原理下次课见。
第二章 8086体系结构
8086微处理器概览
标志位寄存器(FR) • 16位标志位寄存器FR,共有9个
标志位。其中6个是状态标志位, 3个是控制标志位,用于反映 CPU运行过程中的某些状态特征。
标志位寄存器
3、标志寄存器FR
标志寄存器FR中共有9个标志位,可分成两类: ➢状态标志 表示运算结果的特征,它们是 CF、PF、AF、 ZF、SF和OF ➢控制标志 控制CPU的操作,它们是IF、DF和TF。
IP :BIU要取指令的地址。
IP
三、8086CPU的管脚及功能
8086是16位CPU。它采用高性能的N— 沟道,耗尽型负载的硅栅工艺(HMOS)制 造。由于受当时制造工艺的限制,部分管 脚采用了分时复用的方式,构成了40条管 脚的双列直插式封装
1、 8086的两种工作方式
最小模式:系统中只有8086一个处理器,所有的控制信号都 是由8086CPU产生(MN/MX=1)。
最大模式:系统中可包含一个以上的处理器,比如包含协处 理器8087。在系统规模比较大的情况下,系统控 制信号不是由8086直接产生,而是通过与8086配 套的总线控制器等形成(MN/MX=0)。
三总线结构 数据线DB 地址线AB 控制线CB
微机的三总线结构
➢ 最小模式下的引脚说明
( 1 ) AD15 ~ AD0 (Address Data Bus):
堆栈指针用于存放栈顶的逻辑偏移地 址,隐含的逻辑段地址在SS寄存器中。
寄存器的特殊用途和隐含性质
在指令中没有明显的标出,而这些寄存器参 加操作,称之为“隐含寻址”。
具体的:在某类指令中,某些通用寄存器有指 定的特殊用法,编程时需遵循这些规定,将某些 特殊数据放在特定的寄存器中,这样才能正确的 执行这些指令。采用“隐含”的方式,能有效地 缩短指令代码的长度。
第二章 8086微处理器
第二章8086/8088微处理器及其系统结构内容提要:1.8086微处理器结构:CPU内部结构:总线接口部件BIU,执行部件EU;CPU寄存器结构:通用寄存器,段寄存器,标志寄存器,指令指针寄存器;CPU引脚及其功能:公用引脚,最小模式控制信号引脚,最大模式控制信号引脚。
2.8086微机系统存储器结构:存储器地址空间与数据存储格式;存储器组成;存储器分段。
3.8086微机系统I/O结构4.8086最小/最大模式系统总线的形成5.8086CPU时序6.最小模式系统中8086CPU的读/写总线周期7.微处理器的发展学习目标1.掌握CPU寄存器结构、作用、CPU引脚功能、存储器分段与物理地址形成、最小/最大模式的概念和系统组建、系统总线形成;2.理解存储器读/写时序;3.了解微处理器的发展。
难点:1.引脚功能,最小/最大模式系统形成;2.存储器读/写时序。
学时:8问题:为什么选择8088/8086?•简单、容易理解掌握•与目前流行的P3、P4向下兼容,形成x86体系•16位CPU目前仍在大量应用思考题1、比较8086CPU与8086CPU的异同之处。
2、8086CPU从功能上分为几部分?各部分由什么组成?各部分的功能是什么?3、CPU的运算功能是由ALU实现的,8086CPU中有几个ALU?是多少位的ALU?起什么作用?4、8086CPU有哪些寄存器?各有什么用途?标志寄存器的各标志位在什么情况下置位?5、8086CPU内哪些寄存器可以和I/O端口打交道,它们各有什么作用?6、8086系统中的物理地址是如何得到的?假如CS=2400H,IP=2l00H,其物理地址是多少?思考题1.从时序的观点分析8088完成一次存储器读操作的过程?2.什么是8088的最大、最小模式?3.在最小模式中,8088如何产生其三总线?4.在最大模式中,为什么要使用总线控制器?思考题1.试述最小模式下读/写总线周期的主要区别。
8086的内部结构
8086的内部结构
1.寄存器:
8086包含了8个16位的通用寄存器,分为AX、BX、CX、DX、SI、DI、BP和SP。
其中AX寄存器又被分为两个8位的子寄存器AH和AL。
这些寄
存器用于存储数据、地址和控制信息,可以进行各种算术和逻辑操作。
此外,8086还有一些特殊的寄存器,如标志寄存器FLAGS用于存储标志位,IP指令指针寄存器用于存储下一条指令的地址。
2.执行单元:
8086的执行单元包括指令执行单元、算术逻辑单元(ALU)和控制单元。
指令执行单元负责从内存中读取指令,并根据指令的操作码执行相应
的操作。
ALU用于进行算术和逻辑操作,如加减、与或非等。
控制单元用
于控制指令的执行顺序和分支跳转。
3.数据总线和地址总线:
8086有一个16位的数据总线,用于传输数据。
它还有一个20位的
地址总线,用于寻址内存中的数据和指令。
通过这两条总线,8086能够
与外部存储器、输入输出设备等进行数据的读写和通信。
4.总线控制器:
5.输入输出控制器:
6.内存管理单元(MMU):
7.控制信号产生器:
总的来说,8086的内部结构是一个复杂的系统,包括寄存器、执行单元、数据总线和地址总线、总线控制器、输入输出控制器、内存管理单元和控制信号产生器等组件。
这些组件相互协作,使得8086能够进行数据的处理和存储,实现指令的执行和数据的输入输出。
8086CPU结构介绍及基础知识
分段管理的特点: ①起始点可浮动; ②可分开或重叠; ③实际地址由段地址、段内偏移地址组成; ④段首地址必须能被16整除
• 2、物理地址的形成
逻辑地址:存储器的任一个逻辑地址由段基址和偏移地址组成,程序设计时采 用。
•
段基址:偏移地址
物理地址:存储器的绝对地址,从00000~FFFFFH,它是由逻辑地址变换而来。
二、8086CPU的内部结构 8086CPU内部按功能可分为两部分: 1、BIU(总线接口部件) 功能:地址形成、取指令、指令排队、
读/写操作数、总线控制 2、EU(执行部件) 功能:指令译码、指令执行
组成部件见下页图
8086CPU的内部组成
执行单元(EU)
总线接口单元(BIU)
1、BIU ①段寄存器
例2-2
• 将5394H与-777FH两数相加,并说明其标志位状态
•
0101 0011 1001 0100
•+
1000 1000 1000 0001
•
1101 1100 0001 0101
• 运算结果:-23EBH
• 标志位:CF=0,DF=0,AF=0
•
ZF=0,SF=1,OF=0
控制标志位的名称和定义如下:
三寄存器结构目的变址寄存器destinationindexsidibpspax累加器accumulatorbx基数寄存器basecx计数寄存器countdx数据寄存器dataahbhchdhalblcldlipflagsdsessscs数据段寄存器datasegment附加段寄存器extrasegment堆栈段寄存器stacksegment代码段寄存器codesegment标志寄存器flags指令指针寄存器instructionpointer变址寄存器段寄存器控制寄存器通用寄存器源变址寄存器sourceindex基址指针寄存器basepointer堆栈指针寄存器stackpointer指针寄存器数据寄存器8086cpu寄存器组1通用寄存器组?常用来存放参与运算的操作数或运算结果?特殊用途见p25表212指针和变址寄存器?可作通用寄存器存放一般操作数或运算结果?作指针和变址寄存器用于存放某段地址偏移量3段寄存器?用于存放逻辑段的段基地址4指令指针和标志位寄存器?ip存放下一条指令在现行代码段中的偏移地址由biu自动修改
8086CPU的结构与功能
8086CPU 的结构与功能CPU 结构与功能不管什么型号的CPU ,其内部均有这四⼤部件1. ALU :算术逻辑单元2. ⼯作寄存器:分为数据寄存器和地址寄存器⼯作寄存器的⽬的是为了提⾼运算速度,希望参与运算的数据不从外部存储器去取数据,⽽是在CPU 内部取,所以要有能暂存少量数据的寄存器。
数据寄存器是专门存放数据的,地址寄存器是专门存放地址,进⾏间接寻址⽅式,但当地址寄存器不提供地址时,也可以⽤来暂存数据。
3. 控制器:中央指挥机关4. I/O 控制逻辑电路⼀般CPU 执⾏存储器(按字节组织)⾥⾯指令过程如下:1. CPU 通过控制器部件⾥⾯的程序计数器(PC )给外部存储器的地址引脚输出地址(通过地址总线AB ),同时CPU 给存储器发送读操作命令;2. 在读操作下,就把这个地址单元的指令代码通过数据总线(DB ),取回来放在指令寄存器⾥⾯(IR ),注意此时因为指令没有执⾏完,所以PC 还不能去往下⼀条指令,IR 没有地⽅放数据。
3. 指令译码器(ID )不断检测指令寄存器有没有数据,有的话就把指令取⾛放在ID ⾥⾯,取来的指令就被ID 译码分析,就知道这个指令希望CPU 做什么,怎么做;4. ID 通知控制逻辑部件,在相应的控制引脚发出相应的有效命令(读,写等);5. 此条指令执⾏完,IR 为空,PC ⾃动增加到下⼀条指令的地址,执⾏下⼀条指令流程。
如果指令为n 字节,PC ⾃动增n 。
因为在取指令时候,不能执⾏指令,在执⾏指令时候,不能取指令,因此这种架构CPU 是取指令->执⾏指令->取指令...这样循环下去。
CPU 执⾏效率不⾼。
堆栈由先进后出原则组织的存储器区域,称为堆栈。
单⽚机应⽤中,堆栈是个特殊存储区,堆栈属于RAM 空间的⼀部分,堆栈⽤于函数调⽤、中断切换时保存和恢复现场数据(临时数据)。
对于8006 CPU ⽽⾔,堆栈操作是按字操作。
堆栈单元的地址指针由堆栈指针寄存器SP 的内容提供。
第2章8086微处理器1-2
忙碌
1)CPU执行指令时总线处于空闲状态 ) 执行指令时总线处于空闲状态 2)CPU访问存储器 存取数据或指令 时要等待总线操作的完成 访问存储器(存取数据或指令 ) 访问存储器 存取数据或指令)时要等待总线操作的完成 缺点: 缺点:CPU无法全速运行 无法全速运行 解决:总线空闲时预取指令, 解决:总线空闲时预取指令,使CPU需要指令时能立刻得到 需要指令时能立刻得到
6
结论
指令预取队列的存在使EU和 指令预取队列的存在使 和BIU两个部 两个部 分可同时进行工作, 分可同时进行工作,从而 提高了CPU的效率; 降低了对存储器存取速度的要求
7
8088/8086 CPU的特点
采用并行流水线工作方式 对内存空间实行分段管理: 对内存空间实行分段管理:
每段大小为16B~ 每段大小为16B~64KB 16B 用段地址和段内偏移实现对1MB空间的寻址 用段地址和段内偏移实现对1MB空间的寻址 设置地址段寄存器指示段的首地址
支持多处理器系统; 支持多处理器系统; 片内没有浮点运算部件, 片内没有浮点运算部件,浮点运算由数学协处 理器8087支持(也可用软件模拟) 理器 支持(也可用软件模拟) 支持 注:80486DX以后的CPU均将数学协处理 器作为标准部件集成到CPU内部
8
二、8086CPU的内部结构
8086内部由两部分组成: 内部由两部分组成: 内部由两部分组成 执行单元(EU) 执行单元( ) 总线接口单元(BIU) 总线接口单元( )
2
指令预取队列(IPQ)
指令的一般执行过程: 指令的一般执行过程: 取指令 指令译码 读取操作数 执行指令 存放结果
3
串行工作方式:
8086以前的CPU采用串行工作方式: 8086以前的CPU采用串行工作方式: 以前的CPU采用串行工作方式
8086-8088CPU系统结构
1.2 8086/8088寄存器结构及用途
1.1.3 指针寄存器和变址寄存器
▲指针寄存器:
♣ SP:堆栈指针寄存器 ♣ BP:基址指针寄存器
▲变址寄存器:
♣ SI:源变址寄存器 ♣ DI:目的变址寄存器
汇编语言程序设计
8086/8088CPU系统结构
• 1.1 Intel8086/8088微处理器的结构 • 1.2 8086/8088寄存器结构及其用途 • 1.3 8086的存储器组织
• 1.4 堆栈
1.1 Intel8086/8088微处理器的结构
• 1.1.1 8086微处理器的结构
8086微处理器由两大部分组成: ♣ 执行部件EU ♣ 总线接口部件BIU 其内部结构如图(P20 图1.1)
1.3 8086的存储器组织
• 1.3.2 存储器的分段结构
◆8086CPU的寻址能力为:220=1MB; ◆8086CPU的内部寄存器为16位,直接 寻址:216=64KB; ◆在8086系统中引入逻辑段的概念:把 的地址空间划分为任意个逻辑段,长度 为64KB。
1.3 8086的存储器组织
• 1.3.3 物理地址和逻辑地址
▲是CPU与外部存储器、I/O设备的接口;
▲BIU由以下几部分组成: ♣16位指令指针寄存器IP; ♣指令队列; ♣4个16位段寄存器CS、DS、ES、
SS; ♣20位地址加法器; ♣总线控制部件。
1.1.1 8086微处理器的结构
• 3. BIU和EU的管理
▲二者处于并行的工作状态和重叠的工 作方式; ▲相互配合,协调工作; ▲充分利用总线实现最大限度的信息传 输,提高了程序的执行速度。
微机原理2-1:8088CPU内部结构、寄存器组、存储器组织
逻辑地址
地址加法器
将16位的逻辑地址转换为20位的物 理地址,具体操作过程为:先将段寄存 器提供的16位段地址左移四位,低位补0,
恢复为20位地址,然后与由各种寻址方
式提供的16位偏移地址相加,即得到20 位的物理地址。
26
逻辑地址
• 物理地址: • 逻辑地址: 20 位 段基址 (段寄存器的内容)16位 偏移地址(字节距离)16位
控制 累加器 标志寄存器
暂存器
ALU
2
8088/8086的功能结构
16位微处理器也具有以上结构中的基本单元, 但更为复杂。 以8088为例讲解16位微处理器的功能结构。 8088是8086的简化版本。
3
地址加法器
AH AL BL CL DL SP B P DI SI 数据总线 暂存寄存 器
用于串操作指令中,控制地址的变化方向:
设置DF=0,串操作后存储器地址自动增量(增址) ; 设置DF=1,串操作后存储器地址自动减量(减址) 。 串:存储器中一序列字或字节单元
串操作——对序列字或字节单元中的内容进行某种操作 , 比如:将一个字符串从源区传送到目的区 。
MOVS——串传送指令 CMPS——串比较指令 SCAS— —串扫描指令 LODS——装入串指令 STOS——存储 串指令
外存主要指用来长久保存数据的外部存储介质, 常见的有硬盘、光盘、磁带、U盘等。外存的数据 只能通过主存间接地与CPU交换数据
3AH + 7CH=B6H AAH + 7CH=(1)26H 没有进位:CF=0 有进位:CF=1
例如(以8位运算为例,8088中为16位):
10
溢出标志OF(Overflow Flag)
第二章 8086 8088微处理器
1、指令队列缓冲器 2、地址加法器和段寄存器
3、 16位的指令指针寄存器IP
IP中存放的是BIU要取的下一条指令(字 节)的偏移地址,BIU取过后,IP自动加1。 与IP相配的段寄存器是代码段寄存器CS。
扬州大学信息工程学院
第一节 8086/8088 微处理器的结构 一、8086/8088的内部结构
扬州大学信息工程学院
(一)最小工作模式
在最小工作模式,8086/8088 第24~31引脚的含义: 5、M/IO存储器/输入,输出控 制信号,输出。 为1时与存储器数椐传送; 为0时输入,输出接口进 行数据传送。T1~T4有效
6、WR写信号,输出。 在总线周期的T2~T4状态 输出低电平。 7、HOLD总线保持请求信号, 输入。其它主模块要求占用总线 时通过HOLD向CPU发高电平请 求。若“允许”,CPU在T4状态 从HLDA发出高电平后,就得到 总线控制权。
扬州大学信息工程学院
第二章 8086/8088微处理器
第一节 8086/8088 微处理器的结构 一、8086/8088的内部结构
从功能上,8086分为两部分:
1、 总线接口单元BIU (Bus Interface Unit)。 2、执行单元EU (Execution Unit)。 说明:这两个单元在CPU内部担负着不同的任务。 两个单元并行地工作,能使大部分取指令操作与执 行指令操作重叠的进行 (即所谓“流水线”结构)。
扬州大学信息工程学院
第一节8086/8088的微处理器结构
三、8086/8088的引脚信号和功能 (一)地址/数椐总线
AD15~AD0(复用的)
总线周期的状态 T1:输出地址; T2:浮置成高阻; T3:输入/输出数椐;
8086标志寄存器
8086标志寄存器CPU内部的寄存器中,有⼀种特殊的寄存器(对于不同的机器,个数和结构都有可能不同)具有以下三个功能:⽤来存储某些相关指令的执⾏结果⽤来为CPU执⾏相关的指令提供⾏为依据⽤来控制CPU的相关⼯作⽅式这种特殊的寄存器在8086CPU中称为标志寄存器。
8086的标志寄存器有16位,其中存储的信息通常被称为程序状态字(PSW)。
标志寄存器与其他寄存器不⼀样,其他寄存器是⽤来放数据的,都是整个寄存器具有⼀个含义,⽽标志寄存器是按位起作⽤的。
8086中的标志寄存器的结构如下图所⽰:其中1、3、4、12、13、14、15位在8086中没有使⽤。
另外对于有确切含义的每⼀位,我们称为标志位ZF标志标志寄存器的第六位是ZF,零标志位。
他是记录相关指令执⾏后,其结果是否位零。
如果为零,那么zf=1,如果不为零,那么zf=0⽐如指令:mov ax, 1sub ax, 1执⾏后,ax的结果为0,所以zf=1再⽐如:mov ax, 2sub ax, 1执⾏后,ax的结果不为0,所以zf=0在这⾥,有⼀点需要注意:在8086的指令集中,有的指令的执⾏是影响标志位的,⽐如add、sub、mul、div、inc、or、and等,它们⼤都是运算指令(进⾏逻辑或算数运算);有的指令的执⾏对标志寄存器没有影响,⽐如mov、push、pop等,它们⼤都是传送指令。
PF标志标志寄存器的第⼆位是PF,奇偶标志位。
它记录相关指令执⾏后,其结果的所有bit位中1的个数是否位偶数。
如果是偶数,pf=1,如果位奇数,pf=0⽐如指令:mov al, 1add al, 10执⾏后,al为00001011B,其中有3个1,所以pf=0再⽐如:mov al, 1or al, 2执⾏后结果为00000011B,其中有2个1,所以pf=1SF标志标志寄存器的第七位是SF,符号标志位。
它记录相关指令执⾏后,其结果是否为负。
如果为负,sf=1,如果⾮负,sf=0这⾥要明确⼀点,在计算机中,通常⽤补码来表⽰有符号的数据,计算机中的⼀个数据既可以看作有符号数,也可以看作⽆符号数。
8086的内部结构
EU:8个通用寄存器
CU:1个指令指针寄存器
EU:1个标志寄存器 BIU:4个段寄存器
掌握通用寄存器的作用
熟悉各个标志的含义 切实理解存储器组织和存储空间分段的概念
第6页,共35页。
8086的寄存器组
第7页,共35页。
EU--通用寄存器
8086的16位通用寄存器是:
• 它与代码段寄存器CS联用,确定下一条 指令的物理地址
• 计算机通过CS : IP寄存器来控制指令序 列的执行流程
• IP寄存器是一个专用寄存器
第29页,共35页。
BIU—段基值暂存器
• 把4个段基址寄存器的值暂时存储,供∑ 加法器使用
第30页,共35页。
BIU—偏移地址暂存器
• 记录由ALU生成的16位偏移地址,给∑加 法器使用
第4页,共35页。
背景知识--寄存器(Register)
• 寄存器是CPU内部的一些高速存储单元 • 他们为处理器提供各种操作所需要的数据
• 汇编语言程序中将采用他们各自的符号名
例如,在Intel 8086/8088中,主要是:
AX BX CX DX SI DI BP SP
第5页,共35页。
8086的寄存器组
单步执行指令——处理器在每条指令执行结束时, 便产生一个编号为1的内部中断。这种内部中断 称为单步中断,所以TF也称为单步标志。 – 利用单步中断可对程序进行逐条指令的调试。 – 这种逐条指令调试程序的方法就是单步调试。
第22页,共35页。
附加知识--什么是溢出
处理器内部以补码表示有符号数
8个二进制位能够表达的整数范围是:+127 ~ -128 16位表达的范围是:+32767 ~ -32768 如果运算结果超出了这个范围,就是产生了溢出 有溢出,说明有符号数的运算结果不正确 例如:
8086-CPU内部结构
课题:8086微处理结构一、8086 CPU的内部结构:图解分析:1、8086 CPU从功能上可分为:总线接口部件BIU(Bus Interface Unit)执行部件EU(Execution Unit)2、BIU:负责与存储器、外部设备之间进行信息交换。
功能:①负责从内存指定单元取出指令,并送到6字节的指令队列中排列;②同时负责从内存指定单元取出指令所需的操作数并送EU;③EU运算结果也由BIU负责写入内存指定单元。
组成:20位的地址加法器段寄存器(CS、DS、ES、SS)指令指针(IP)指令队列缓存器总线控制电路各组件功能:①地址加法器:计算并形成CPU要访问的内存单元的20位物理地址;②段寄存器:用于存放对应段的段基址;③指令指针寄存器:用于存放下一条要执行的指令的偏移地址;④指令队列:是6字节的“先进先出”的RAM存储器,用于顺序存放CPU要执行的指令,并送EU去执行;⑤总线控制电路:产生总线控制信号,如存储器读/写、I/O读写控制信号。
3、EU:负责指令的执行。
功能:①负责从BIU的指令队列中取得指令、分析指令、执行指令,并将结果存入通用寄存器或由BIU写入内存单元;②同时负责计算操作数所在内存单元的偏移地址。
组成:算术逻辑单元(ALU)标志寄存器通用寄存器:数据寄存器:AX、BX、CX、DX指针和变址寄存器:SP、BP、SI、DIEU控制电路各组件的功能:①算术逻辑单元(ALU):对操作数进行算术和逻辑运算,也可按指令的寻址方式计算出CPU要访问的内存单元的16位偏移地址;②标志寄存器:用于反映算术和逻辑运算结果的状态;③数据寄存器:用于保存操作数或运算结果等信息;④指针和变址寄存器:用于存放操作数所处存储单元的偏移地址;⑤EU控制电路:接收从BIU指令队列中取得的指令,分析、译码,以便形成各种实时控制信号,对各个部件实现特定的控制操作。
微机原理 第2章_8086系统结构
8086 CPU的引脚及其功能
8086 CPU的两种工作模式
最小模式:用于单机系统,系统所需要的控 制信号由8086直接提供,MN/MX=1,CPU 工作于最小模式 最大模式:用于多处理机系统,系统所需的 控制信号由总线控制器8288提供, MN/MX=0,CPU工作于最大模式
8086 CPU在最小模式下的引脚定义 8088与8086的区别
通 用 寄 存 器
AX BX CX DX SP BP SI DI
8086 CPU结构框图
20位地址总线
Σ
数据 总线 16位
ALU数据总线 (16位) 暂存器
队列 总线 (8位)
CS DS SS ES IP 内部寄存器 指令队列
总线 控制 电路 8086 总线
ALU
标志寄存器
EU 控制器
1 3 4 5 6
PSW
存放状态标志、控制标志和系统标 志
PSW格式:
15 11 10
OF DF
9 IF
8
7
6
4 AF
2 PF
0 CF
TF SF ZF
状态标志
状态标志用来记录程序中运行结果的状态信息,它们根据有关指 令的运行结果由CPU自动设置,这些状态信息往往作为后续条件 转移指令的转移控制条件,包括6位: OF:溢出标志,在运算过程中,如操作数超出了机器数的表示范 围,称为溢出,OF=1,否则OF=0 SF:符号标志,记录结果的符号,结果为负SF=1,否则SF=0 ZF:零标志,运算结果为0,ZF=1,否则ZF=0 CF:进位标志,进行加法运算时从最高位产生进位,或减法运算 从最高位产生借位CF=1,否则CF=0 AF:辅助进位标志:本次运算结果,低4位向高4位产生进位或借 位,AF=1,否则AF=0 PF:奇偶标志,用来为机器中传送信息时可能产生的代码出错情 况提供检验条件,当结果操作数中低8位中1的个数为偶数时PF=1, 否则PF=0
3现代微机结构-8086及80286
理 器
器 存储器 存储器 I/O
AD15~AD0 双向
DT/R DEN
数据 锁存 器
第二节 Intel 80286
与8086的显著区别:
1. 地址线和数据线不再分时复用, 简化了硬件设计;
2. 增加了地址线的宽度, 物理地址空间增加到16M 3. 增加了新的指令, 以增强其控制能力。 4. 引入存储管理中的虚存管理机制。通过“虚地址”
结论:
采用地址流水线后, 由于地址信号的提前建立, 与非地址的流水线相比, 可以尽量减少插入Tw 等待周期。因而加快了访存速度。 (但并没有提高存储器的速度)。
四、80286的工作模式
(一) 实地址模式
系统开机复位时,自动进入实地址模式, A23~A20自 动置为0, 以 A19~A0寻址1M的存储空间。
实地址模式下的寻址过程:
段基地址
段基地址 0000
+ 20位物理地址 内存单元
偏移量
为实施“虚地址保护”所希望的寻址过
程:
应用设计 者给出的 虚地址
• 实施保护 • 实现虚地址到
物理地址
内存单元
实地址的转换
“虚地址保护” 实施的中间平台
“ 中 间 平 台 ” 的 核 心 部描述子 (Descriptor) 分描:述子的作用:
(物理地址)
左移4位
偏移量 基地址
…
15
0 15
0ห้องสมุดไป่ตู้
段寄存器
偏移量
19
0
一 个
16位基地址 0000
段
+
20位的物理地址
外部地址总线
三、8086的中断系统
(一) 中断源
1、外部中断
8086cpu结构与功能
4.ZF(Zero Flag)零进位
-----反映计算结果是否为0。若结果为零则ZF=1,否则ZF=0。
5.SF(Sign Flag)符号标志
-----反映计算结果最高位及符号位的状态。如果运算结果的最高位 为1则SF=1(对带符号数即为负数),否则SF=0(对带符号数 即为正数)。
6.OF(Overflow Flag)溢出标志
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
VCC AD15 AD16/S3 AD17 /S4 AD18 /S5 AD19 /S6 SS0 (HIGH) MN/MX RD HOLD(RQ/GT0 ) HLDA(RQ/GT1 ) WR(LOCK) M/IO(S2 ) DT/R(S1 ) DEN(S0 ) ALE(QS0 ) INTA(QS1 ) TEST READY RESET
-----反映运算结果是否超出了带符号数的表数范围。
例:十六进制数 0CCCCH 与十六进制数 5115H 相加, 请写出运算后六个标志状态位的值。 解: 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 (0CCCCH) + 0101000100010101 (5115H) 10 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 从运算结果看出: 最高位D15位往前有进位,所以CF=1; 运算结果不全为0,所以ZF=0; 由于D15=0,所以SF=0; 运算结果的低8位中有4个“1”,所以PF=1; D3有向D4进位,因此AF=1; 两个异号数相加,不可能发生溢出,所以OF=0。
简述8086cpu的编程结构
简述8086cpu的编程结构8086 CPU是Intel公司于1978年推出的一款16位微处理器,它是当时最先进的微处理器之一。
它的编程结构具有以下几个方面的特点。
一、寄存器8086 CPU有14个16位的寄存器,分为通用寄存器、段寄存器和指令指针寄存器。
通用寄存器包括AX、BX、CX和DX,每个通用寄存器可以分为两个8位的部分进行独立操作。
段寄存器包括CS、DS、SS和ES,用于存储段的起始地址。
指令指针寄存器IP用于存储指令的偏移地址。
二、寻址方式8086 CPU支持多种寻址方式,包括直接寻址、寄存器寻址、间接寻址、基址加变址寻址和相对寻址等。
直接寻址是指操作数直接给出地址;寄存器寻址是指操作数在寄存器中;间接寻址是指操作数通过一个寄存器指向的地址;基址加变址寻址是指操作数通过一个基址寄存器和一个变址寄存器计算出的地址;相对寻址是指操作数相对于指令指针寄存器的偏移地址。
三、指令系统8086 CPU的指令系统非常丰富,包括数据传送指令、算术运算指令、逻辑运算指令、位操作指令、串操作指令、程序转移指令和处理器控制指令等。
数据传送指令用于将数据从一个位置传送到另一个位置;算术运算指令用于进行加减乘除等数学运算;逻辑运算指令用于进行与、或、非等逻辑运算;位操作指令用于对数据的位进行操作;串操作指令用于对字符串数据进行操作;程序转移指令用于控制程序的转移;处理器控制指令用于控制处理器的工作状态。
四、中断和异常处理8086 CPU支持中断和异常处理机制。
中断是指外部设备通过中断请求线向处理器发出中断请求,处理器则通过中断向量表找到对应的中断服务程序进行处理。
异常是指在执行指令过程中发生的错误或非法操作,处理器会根据异常类型转移到异常处理程序进行处理。
五、堆栈机制8086 CPU使用堆栈机制来保存程序的返回地址和局部变量等信息。
堆栈由SS和SP寄存器来管理,SS寄存器存储堆栈段的起始地址,SP寄存器存储堆栈指针的偏移地址。
8086微处理器的内部结构
各个逻辑段允许重叠
例如,如果代码段中的程序占有8KB(2000H)存储区, 数据段占有2KB(800H)存储区,堆栈段占有256个字 节的存储区。此时分段情况如图所示。
代码段的区域本可为 02000H ~ 11FFFH (64KB),由于程序 区只需要8KB,所以 程序区结束后的地址 就可作为数据段的起 始地址(04000H) 注意:这里所谓的重叠只是指每个区段的大小允许根据 实际情况分配,而不一定非要占有64KB的最大段空间。
程序设计过程中必须遵守的系统内部约定:
如果访问存储器要求读/写操作数,则通常由DS给 出段地址(必要时可修改为CS、ES或SS),而其偏移 地址要由CPU的指令执行部件根据指令中所给定的寻 址方式来进行计算,通常将这样计算得到的偏移地址称 为有效地址(EA)。
如果所采用的寻址方式是通过基址指针BP寻址,则 段地址要由SS提供(必要时可以修改为CS、DS或ES)。
数据总线
通用寄存器
8086 暂存寄存器
ALU数据总线 (16位)
CS DS SS ES IP 内部通信 寄存器
(16位)
总线 控制 逻辑
8086 总线
ALU
EU 控制 系统
Q总线 16位
指令队列
1 2 3 4 5 6
总线接口部件 (BIU)
标志
指令执行部 件(EU)
1. 指令执行部件EU 由算术逻辑单元(ALU)、标志寄存器、通用寄存 器组和EU控制器等部件组成。 主要功能是执行指令: ○一般顺序执行,EU不断地从指令队列中取指令连 续执行,而省去访问存储器取指令的时间。 ○需要访问存储器取操作数时,EU将访问地址送给 BIU后,将要等待操作数到来后才能继续操作; ○遇到转移类指令时,要将指令队列中的后续指令 作废,等待BIU重新从存储器取出目标地址中的指令代 码进入指令队列后,EU才能继续执行指令。
80888086的功能结构
2.2.4 8088/8086的功能结构一、8088/8086的结构8086与8088在结构上都是由执行单元EU和总线接口单元BIU两大部分构成。
以下是8088/8086的内部结构框图。
●执行单元EU负责执行指令。
EU在工作时不断地从指令队列取出指令代码,并完成指令所要求的操作。
它由算术逻辑单元ALU、通用寄存器REGs、标志寄存器FLAGS和EU控制部件组成。
各部件的功能如下:ALU:即运算器,进行算术、逻辑、移位、偏移地址计算等各种运算。
FLAGS:存放运算结果的特征,如进借位、是否为零、奇偶性、溢出等。
REGs:临时存放操作数、运算结果以及操作数地址等。
EU控制部件:接收指令队列中的指令,进行指令译码、分析,形成各种控制信号,实现EU 各个部件完成规定动作的控制。
●总线接口单元BIU负责CPU与存储器、I/O接口之间的信息(包括数据、地址、控制命令等)传送。
包括生成访问存储器所需的20位的物理地址、不断从内存中取指令并送到指令队列、以及配合EU对指定的内存单元或者外设端口进行数据存取操作。
BIU由段寄存器、指令指针寄存器IP、指令队列、地址加法器以及总线控制逻辑组成。
各部件的功能如下:总线控制逻辑:CPU与外总线之间的接口,实现指令、数据以及其他外部信息的存取。
段寄存器:存放存储器段的段基地址。
指令指针寄存器:存放当前要读取的指令的地址。
它相当于前面介绍过的指令计数器PC。
指令队列:8088和8086的指令队列长度分别为4字节和6字节,为FIFO(先进先出)结构。
当EU从指令队列中取走指令,指令队列出现空字节时,BIU就自动执行一次取指令周期,从内存中取出后续的指令代码放入队列中。
当EU需要数据时,BIU根据EU给出的地址,从指定的内存单元或外设中取出数据供EU使用。
当运算结束时,BIU将运算结果送入指定的内存单元或外设。
当指令队列空时,EU就等待,直到有指令为止。
若BIU正在取指令,EU发出访问总线的请求,则必须等BIU取指令完毕后,该请求才能得到响应。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简述8086内部寄存器结构
8086内部寄存器结构是指8086微处理器中用于存储和处理数据的寄存器的组织方式。
8086处理器是Intel公司于1978年推出的一款16位微处理器,是后来x86系列处理器的祖先。
它的内部寄存器结构包括通用寄存器、指针寄存器、索引寄存器、段寄存器和标志寄存器。
首先是通用寄存器,8086处理器有四个16位的通用寄存器,分别是AX、BX、CX和DX。
其中AX寄存器是累加器,用于存储算术运算的结果;BX寄存器是基址寄存器,常用于存储偏移地址;CX 寄存器是计数器,用于循环和计数操作;DX寄存器是数据寄存器,用于存储数据。
其次是指针寄存器,8086处理器有两个16位的指针寄存器,分别是SP和BP。
SP寄存器是堆栈指针寄存器,用于指向堆栈的栈顶;BP寄存器是基址指针寄存器,常用于指向栈帧的基址。
再次是索引寄存器,8086处理器有两个16位的索引寄存器,分别是SI和DI。
SI寄存器是源索引寄存器,常用于指向源操作数;DI 寄存器是目的索引寄存器,常用于指向目的操作数。
然后是段寄存器,8086处理器有四个16位的段寄存器,分别是CS、DS、ES和SS。
CS寄存器是代码段寄存器,用于存储代码段的段地址;DS寄存器是数据段寄存器,用于存储数据段的段地址;
ES寄存器是附加段寄存器,常用于存储附加数据段的段地址;SS 寄存器是堆栈段寄存器,用于存储堆栈段的段地址。
最后是标志寄存器,8086处理器有一个16位的标志寄存器,用于存储处理器的状态信息。
标志寄存器中的各位表示不同的状态,如进位标志、零标志、符号标志等。
这些标志位可以被程序读取和设置,用于控制程序的执行。
这些寄存器之间可以相互传递数据,实现数据的存储和处理。
通用寄存器可以进行算术和逻辑运算,指针寄存器和索引寄存器常用于存储和访问内存中的数据,段寄存器用于访问不同的内存段,标志寄存器用于控制程序的执行。
8086内部寄存器结构的合理设计,使得处理器具有较强的数据处理和运算能力,并且能够有效地访问内存中的数据。
这为后来x86系列处理器的发展奠定了基础,也为计算机系统的性能提升做出了贡献。