170 likes | 643 Views
第二章 Intel-8086 微处理器结构. 2-1 Intel-80x86 系列微处理器概述. 1971 年推出 Intel 4004 芯片,被认为是世界上第一个 微处理器 (CPU) 。 1978 年 Intel 公司推出 8086 CPU , 16 位。 1979 年又推出 8088 , 8 位数据线,以满足与当时的 8 位机间的兼容性。 IBM 公司进入个人计算机领域,采用 Intel 8088 芯片,使 Intel CPU 成为主流。. 2-2 Intel-8086 微处理器结构. 1 、 8086 概况. 16 位微处理器
E N D
第二章 Intel-8086微处理器结构 2-1 Intel-80x86系列微处理器概述
1971年推出Intel 4004芯片,被认为是世界上第一个微处理器(CPU)。 • 1978年Intel 公司推出8086 CPU,16位。1979年又推出8088,8位数据线,以满足与当时的8位机间的兼容性。 • IBM公司进入个人计算机领域,采用Intel 8088芯片,使Intel CPU成为主流。
2-2 Intel-8086微处理器结构 1、8086概况 • 16位微处理器 • 地址总线20条,寻址能力220=1MB • DIP-40(双列直插式40脚)封装 • 2、8086的功能结构 • 传统CPU执行指令的过程是:取指令->执行指令->再取指令->……,串行操作。 • 而8086的取指令与执行指令操作是由两个不同的部件完成,可同时进行。目的是提高CPU的执行速度。
8086从功能上可分成两部分: • 总线接口部件BIU(Bus Interface Unit); • 执行部件EU(Execution Unit)。 • 总线接口部件BIU负责与内存或I/O端口进行指指令和数据传送;执行部件EU负责指令执行。 ①BIU从内存中取指令送到指令队列; ②当EU执行指令时,BIU要配合EU从指定的内存单元或I/O端口中读取数据,或者把EU的操作结果送到指定的内存单元或I/O端口去。
3、8086的存储器组织 • 1)8086寻址能力的扩展 • 存储器由很多个8位的存储单元组成,每个存储单元对应于一个地址编码。CPU要访问某存储单元,需将该单元地址发到地址总线。 • 8086内部与地址有关的寄存器均为16位,只能寻址216=64KB的存储器空间。 • 为了扩大CPU可访问的存储器容量,8086 CPU采用两个寄存器来形成地址:段地址寄存器、偏移地址寄存器。 • 这样,8086实际上有20条地址线,能够访问的存储单元数(即寻址能力)为220=1MB; • 地址范围:00000H~0FFFFFH
2)8086中20位地址的生成 • 将1MB存储空间分成若干个不超过64KB的区段,称为存储器的段(Segment)。 • 每个存储段有一个16位的基准地址,称为段地址; • 以段地址为基准,段内各存储单元的相对地址称为偏移地址(16位); • 段地址存放在CPU的段寄存器中;偏移地址存放在偏移地址寄存器中。 • 20位物理地址= • 16位段地址×24(左移四位)+16位偏移地址 • 例如:段地址为2500H,偏移地址9700H • 则形成的物理地址为25000H+9700H=2E700H
3)物理地址、逻辑地址 • 物理地址:存储器中各存储单元的实际地址。 • 逻辑地址:用段地址和偏移地址表示的相对地址。 • 表示形式为 段地址:偏移地址 • 如 2000H:1340H • 一个物理地址可对应多个逻辑地址; • 如物理地址12345H,逻辑地址可以是 • 1234H:0005H;1200H:0345H;1100H:1345H
4)段的种类 • 有了段寄存器,可将1M的存储空间分成很多个段; • 为便于管理,8086设计上将不同的存储内容存放在不同的段中;分为代码段、数据段、堆栈段和附加段。 • 用户编写的程序放在代码段中,使用的数据放在数据段中。
4、8086的寄存器组 • 数据寄存器:AX、BX、CX、DX • 指针及变址寄存器:SP、BP、SI、DI • 段寄存器:CS、DS、ES、SS • 指令指针IP(Instruction Pointer) • 状态标志寄存器PSW(Program State Word) • 说明 • 数据寄存器和指针及变址寄存器又统称通用寄存器; • 指令指针与状态标志统称控制寄存器; • 所有寄存器均为16位。
1)数据寄存器 • AX:通用寄存器;算术运算的主寄存器——累加器(Accumulator); • BX:通用寄存器;一些指令中作为基址(Base)寄存器; • CX:通用寄存器;一些指令中作为计数器(Counter) ; • DX:通用寄存器;一些指令中作为数据(Data)寄存器与AX配合使用。
说明: • 在一般指令中,这些寄存器可作为通用寄存器使用,在一些特定的指令中,各寄存器有特定功能; • 既可作为16位使用,也可分成两个8位寄存器使用 • 高8位记作 : AH、BH、CH、DH • 低8位记作 : AL、BL、CL、DL
2)指针及变址寄存器 • SP:堆栈指针寄存器(Stack Pointer),用来指示栈顶的偏移地址。 • BP:基址指针寄存器(Base Pointer),指示堆栈区中的一个基地址。 • SI:源变址寄存器(Source Index)。 • DI:目的变址寄存器(Destination Index)。 • 说明:这4个寄存器也可以作为通用寄存器使用。
3)段寄存器 • CS:代码段(Code Segment);存放程序段的段地址。 • DS:数据段(Data Segment);存放数据段的段地址。 • ES:附加段(Extra Segment);存放附加段的段地址. • SS:堆栈段(Stack Segment);存放堆栈段的段地址。
4)控制寄存器 • IP:指令指针(Instruction Pointer)寄存器;能自动加1,生成代码段中下一条将要取的指令的偏移地址。 • PSW:程序状态字(Program State Word)寄存器;用各个状态位反映算术逻辑运算的一些状态标志和控制标志。
5、PSW标志位的定义 • C—进位标志,结果在最高位产生进位或借位时置1; • P—奇偶标志,结果中1的个数为偶数时置1; • A—半进位标志(低4位向高4位的进位); • Z—运算结果为零时置1; • S—符号标志,该标志位与结果的最高位相同; • O—溢出标志,运算结果超出有符号数表示范围时置1; • D—方向标志,用于串操作,置1使串操作按减1执行; • T—跟踪标志,置1后处理器进入单步执行方式,便于调试; • I—中断允许标志,置1允许CPU接受外部可屏蔽中断; • 前6种标志为状态标志,后3种标志为控制标志。 O D I T S Z A P C
CPU怎样判断是否溢出? • 按结果的最高位和次高位的进位情况判断;对两个进位进行异或,异或结果为1表示有溢出,为0表示无溢出。 • 原理不做讨论。