第2章微处理器_第1页
第2章微处理器_第2页
第2章微处理器_第3页
第2章微处理器_第4页
第2章微处理器_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章微处理器结构§180x86CPU的内部结构§280x86CPU工作模式及存储器寻址§3CPU总线操作时序的周期概念学习指导和要求重点掌握:CPU的内部结构及主要特点基本寄存器的用途存储器的分段结构CPU的主要引脚信号

§180x86CPU的内部结构主要内容:

8086(8088)CPU内部结构

386CPU内部结构2024年1月23日第4页8086CPU引脚图2024年1月23日第5页数据存储器2)特殊功能寄存器SFR占用字节地址:80H~FFH位寻址寄存器:其字节地址可被8整除。专用寄存器:A、B、PSW、DPTR、SPI/O接口寄存器:

P0、P1、P2、P3、SBUF、TMOD、TCON、SCON…2024年1月23日第7页AD15~AD0(Address/Data):地址/数据复用引脚,双向,三态。A19/S6~A16/S3(Address/Status):地址/状态复用引脚,输出,三态。NMI(Non-MaskableInterrupt):非屏蔽中断输入信号,输入,上升沿触发INTR(InterruptRequest):可屏蔽中断请求信号,输入,电平触发,高电平有效。BHE/S7(BusHighEnable/Status):高8位数据总线允许/状态复用信号,三态,输出,低电平有效MN/MX(Minimum/Maximum):工作方式选择信号,输入。为1时CPU工作在最小模式下;为0时,CPU工作在最大模式下。RD(Read):读信号,三态,输出,低电平有效。

TEST:测试信号,输入,低电平有效。READY(Ready):准备就绪信号,输入,高电平有效。RESET(Reset):复位信号,输入,高电平有效。

CLK(Clock):主时钟信号,输入。GND、VCC:8086只需单一的+5V电源,由VCC端输入,引脚1和20为两条GND线,要求均要接地。

一、8086(8088)CPU内部结构

主要特点:

16位数据线,支持8位和16位整数运算;

20位地址线,最大寻址内存空间为1MB;

I/O最大寻址空间为216=64KB;

4.77~10M主频;

支持单用户、单任务操作系统。

8086CPU内部结构框图1.执行部件EU:执行部件EU的功能就是负责指令的执行EU包括下列几个部分:(1)算术逻辑单元(2)标志寄存器FR(3)通用寄存器组(4)EU控制器

2.总线接口部件BIU

:是CPU与外部存储器及I/O的接口,负责与存储器和I/0系统进行数据交换。BIU包括下列几个部分:(1)4个16位段地址寄存器(2)16位指令指针IP(3)20位物理地址加法器(4)6字节的指令队列(5)总线控制逻辑3.BIU和EU的工作原理

(1)BIU根据指令指针CS:IP中从内存取指令,并送到指令队列。(2)EU是直接从BIU的指令队列中取指令执行,由于指令队列中至少有一个字节的指令,EU就不必因取指令而等待。(3)在EU执行指令过程中需要取操作数或存结果时,先向BIU发出请求,并提供操作数的有效地址,BIU将根据EU的请求和提供的有效地址,形成20位的物理地址并执行一个总线周期去访问存储器或I/O端口,从指定存储单元或I/O端口取出操作数送EU执行或将结果存入指定的存储单元或I/O端口。注意:(1)如果BIU已准备好取指令但同时又收到EU的申请,则BIU先完成取指令的操作,然后进行操作数的读写。(2)当EU执行转移、调用和返回指令时,BIU先自动清除指令队列,再按EU提供的新地址取指令。BIU新取得的第一条指令将直接送到EU中去执行。然后,BIU将随后取得的指令重新填入指令队列。

15 87 0 AH

AL AX:累加器

BH BL BX:基址寄存器

CH CL CX:计数器

DH DL DX:寄存器

SI:变址寄存器

DI:变址寄存器

BP:基址寄存器

SP:堆栈指针通用寄存器SIDIBPSPAX(累加器):I/O利用AX,AL与外设交换数据

BX(基址寄存器):常用来存放存储单元的基地址

CX(计数器):循环指令存放循环次数

DX(数据寄存器):I/O存放16位端口地址

SI(源变址寄存器):串指令常用来存放源串存储单元偏移地址DI(目的变址寄存器):串指令常用来存放目的串存储单元偏移地址

SP(堆栈指针):存放堆栈区栈顶单元的偏移地址BP(基址指针寄存器):常用来存放堆栈区存储单元的偏移地址

CS:代码段寄存器

DS:数据段寄存器

SS:堆栈段寄存器

ES:附加段寄存器150IP段寄存器:存放逻辑段的起始地址的高16位(段基址)指令计数器IP:存放指令的偏移地址+1150151211109876543210标志寄存器(FR)运算结果标志:

CF:D15/D7有进位(借位)CF=1(无符号溢出)

PF:偶数个1PF=1

AF:D3向D4位有进位(借位)AF=1ZF:结果为零ZF=1 SF:结果为负SF=1OF:结果溢出(有符号数)OF=1控制标志:

TF:单步标志

IF:中断标志(STI,CLI)DF:方向标志 (STD,CLD)

OF

DFIFTFSFZFAFPFCF

(1)设X=+0110101B,Y=+0111001B

求X+Y和X-Y,置标志位SFZFCFOFAFPF解:0011010153+0011100157

01101110110000000

解:0011010153

+

1100011157

11111100-4101

011练习(2)设X=+0110101B,Y=+1111001B

求X+Y,置标志位SFZFCFOFAFPF解:0011010153+01111001121

10101110-82100100求X-Y解:0011010153+10000111-121

10111100-68101010(3)设X=-0110101B,Y=-1111001B,求X+Y解:

11001011-53置标志位SFZFCFOFAFPF+10000111-121

0101001082001110求X-Y解:

11001011-53+01111001-(-121)

0100010068000001判断结果OF有溢出可用下列方法:加法:正数+正数=负数负数+负数=正数减法:变为加法运算,根据

[X-Y]补=[X]补+[-Y]补

=[X]补+[[Y]补]求补减法对标志位的影响:SF、ZF、OF、PF与加法相同

CF、AF则有进位表示无借位,无进位表示有借位

二、80386内部结构8086CPU内部结构框图主要性能:1985年Intel公司推出了其第一片32位微处理器80386。

•32位地址,可直接寻址的物理存储空间为4GB

•具有片内存储管理部件,使虚拟存储空间(逻辑地址空间)可达64T字节

•字长32位,系统总线的数据通路宽度32位

•采用多极流水线结构

•平均运算速度约为4MIPS(MillionInstructionsPerSecond)1.80386微处理器的内部功能结构中央处理单元、总线接口单元、存储器管理部件组成由总线接口部件(BIU)、指令预取部件(InstructionPrefetchUnit,IPU)、指令译码部件(InstructionDecodeUnit,IDU)、执行部件EU、分段部件(SegmentUnit,SU)分页部件(PagingUnit,PU)。这6个部件可以并行地工作,构成一个6级流水线体系结构。(2)总线接口部件(BIU)

由总线请求判优器地址总线驱动器流水线总线宽度控制数据总线收发器组成主要负责微处理器的内部单元与外部数据总线之间的信息交换(如取指令、数据传送等),并产生相应的总线周期控制信号。(4)存储器管理部件

存储器管理部件由分段部件和分页部件、保护测试部件组成。实现存储器保护和虚拟存储器管理。(3)中央处理单元(CPU):由指令和执行单元组成。指令单元中的指令预取部件(IPU)由一个16字节长的指令预取队列和预取器组成。执行部件(EU)由控制逻辑部件、数据处理部件组成。数据处理部件包括算术逻辑部件ALU、8个32位的通用寄存器和一个64位的桶形移位器和乘/除硬件(典型32位乘法在1us内完成),主要用于在控制部件控制下执行数据操作和处理。

二、80386内部寄存器

▲IOPL(I/O特权级标志):仅适用于保护方式(0~3级,IOPL=00为最高)。只有当任务的现行特权级

IOPL,I/O指令才能顺利执行,否则产生中断,使任务挂起。▲NT(任务嵌套):任务嵌套标志指示在保护模式下当前执行的任务嵌套于另一任务。▲RF:恢复标志或重新启动标志。与调试寄存器一起用于断点和单步操作,当RF=1时,下一条指令的任何调试故障将被忽略,不产生异常中断。当RF=0时,调试故障被接受,并产生异常中断。用于调试失败后,强迫程序恢复执行,在成功执行每条指令后,RF自动复位。▲VM:虚拟8086方式标志。当80386工作在保护方式时,若VM=1,则CPU转换到V86方式,在此方式下,80386的全部操作就像在一个快速的8086上运行一样。若返回保护方式,此位复位。(1)EFLAGS(2)段寄存器和段描述符寄存器段寄存器在保护方式下,寻址4GB的存储空间其内容为段选择符,根据段选择符的内容可以从一个段描述附表中找到一项,即为描述符。每个描述符对应一个段,包含对应段的32位段基地址、20位段界限及12位的一些属性标志,并分别经过分段部件和分页部件计算存储单元的线性地址和物理地址。段描述符寄存器

:64位段描述符寄存器(段描述符高速缓冲寄存器)

当段选择符由指令确定后,80386就自动从存储器中的描述符表里找到对应的描述符,并装入到该寄存器对应的段描述符寄存器中,并通过一个属性标志指示该段正被访问,则以后对该段的访问,就不用通过段选择符从存储器中的描述符表里取出相应的描述符,而是直接从CPU中的段描述符寄存器中取出描述符,然后计算线性地址和物理地址,这样就能缩短访问存储器时间

§280x86工作模式及存储器寻址主要内容:

80x86的工作模式(重点)

实模式下的存储器寻址(重点)

保护模式下的存储器寻址

一、80x86的工作模式

实地址模式,虚地址保护模式,虚拟8086模式

1.实地址模式实地址模式是80x86的基本工作模式。

特点:

可寻址1MB存储空间,实地址范围为00000H-FFFFFH;

存储器分段使用,每段容量小于或等于64KB。可实现8位、16位或32位操作。

2.

虚地址保护模式建立在虚拟存储和存储保护两大机制基础上的工作模式。特点:

可寻址4GB(232B)物理存储空间;

可使用64TB(246B)虚地址空间;

采用分段、分页虚拟存储管理机制,每段容量小于或等于4GB,每页容量为4KB(386,486)或4MB(奔腾);

支持多任务操作。

3.虚拟8086模式在虚地址保护模式下,模拟8086的工作环境,可运行8086程序。特点:允许多个1MB的DOS存储器分区共存于存储器系统中,这样允许在虚地址保护模式下执行多个DOS程序(即8086/8088程序)。

二、实模式存储器寻址(8086/8088)特点:

可寻址1MB存储空间,实地址范围为00000H-FFFFFH;存储器分段使用,每段容量小于或等于64KB。在程序中至多可使用6个当前段,即一个代码段,一个堆栈段,4个数据段,每段之间可相邻或重叠,也可不相邻。代码段≤64KB

堆栈段数据段附加段附加段附加段

存储器分段CSSSDSESFSGS指令代码保护信息数据段基址:指示逻辑段的开始位置8086/8088存储器寻址10000H10001H10002H10003H10004H‘A’‘B’-12310DS1000H(DS)*24+0003H=10003H内存内容的表示(10000H)=41H或4241H

(10001H)=42H或FF42H

(低字节地址为该字的地址)指令逻辑地址表示:MOVAL,[0000H]

偏移地址

段基址15430

15064KB物理地址

操作数存储器寻址00000HFFFFFHDS

0000

地址概念

物理地址(绝对地址):与存储单元一一对应

段基址:段起始地址的高16位(A19~A4)地址范围:0000H~FFFFH

偏移地址:相对于段首地址偏移的字节数地址范围:0000H~FFFFH(64KB)

逻辑地址:段基址:偏移地址

物理地址(PA)=段基址X24+偏移地址(EA)A19A18A17A16A15A14…A4A15A14…A4A3A2A1A00000段基址偏移地址地址加法器A19A18A17A16A15A14…A4A3A2A1A0物理地址物理地址的形成

实模式逻辑地址:xxxxH:xxxxHDS、ES、FS、GS、SSPA=段基址*24+EA(偏移地址)16位EA由指令提供段基址存储器寻址逻辑地址:段基址:偏移地址代码段:CS:IP堆栈段:SS:SP或BP数据段:DS:BX/DI/SI或其组合附加段:ES:BX/DI/SI或其组合附加段:FS:BX/DI/SI或其组合附加段:GS:BX/DI/SI或其组合数据的存储格式

字节(DB-DATABYTE):存放一个存储单元。字(DW-DATAWORD):存放相邻的两个存储单元。低8位数存于低地址单元,高8位数存于高地址单元。双字(DD-DATADOUBLEWORD):存放相邻的四个存储单元,低位数存于低地址单元。

7 010000H12H 10001H18H 10002H

34H 12H

10004H

56H00H10006H78H 56H34H10009H12H

例1:定义数据段如下,画出数据存储示意图。

DATASEGMENTDB12H,18HDW1234H,56HDD12345678HDATAENDSDATAAT1000H段名例2:定义数据段如下,画出存储格式示意图。

DATASEGMENTD1DB12,-2,6,’A’D2DW25HD3DD123456HDATAENDSD1+000001100D1+111111110D1+200000110D1+301000001D20010010100000000D301010110001101000001001000000000

DATA练习

1.写出下列逻辑地址的段基址、偏移地址和物理地址。(1)2314H:0035H

(2)1FD0H:000AH2.已知某指令的(CS)=A7F0H,(IP)=2B40H,求其物理地址。10000H10001H10002H10009H首址3.一个有10个字节的数据区起始地址为:1000H:0000H求该数据区的首、末单元的物理地址。首地址=段基址*24+偏移地址

=10000H+0000H=10000H

末地址=首地址+(字节数-1)*1=10000H+9H=10009H末址

4.一个存有10个字的数据区,它的起始地址为2000H:0100H,求数据区首、末字单元的物理地址。…20100H20101H20112H20113H首地址

=段基址*24+偏移地址

=20000H+0100H=20100H末地址=首地址+(字数-1)*2=20100H+9H*2=20100H+12H=20112H2KB和8KB?

求一个数据区的首、末数据的物理地址首地址=段基址*24+偏移地址若为字节数据,则:

末地址=首地址+(字节数-1)*1

若为字数据,则:

末地址=首地址+(字数-1)*2

若为双字数据,则:

末地址=首地址+(双字数-1)*4

堆栈堆栈是存储器中特定的一个区域,用于保存信息(如:断点、中间结果等),其存取方式为“后进先出”。

使用堆栈:(1)定义堆栈(建立堆栈),即确定堆栈的大小和SS:SP的值。

(2)堆栈操作(存取数据)。

7 010000H ?10001H ?10002H

10009H?

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论