法学洪第2章8086CPU结构_第1页
法学洪第2章8086CPU结构_第2页
法学洪第2章8086CPU结构_第3页
法学洪第2章8086CPU结构_第4页
法学洪第2章8086CPU结构_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

1法学洪第2章8086CPU结构22.18086微处理器的结构8086/8088是Intel公司的第三代微处理器,其中:8086为16位机,主频5MHz;内部数据总线和外部数据总线都是16位;地址总线为20位,可最大寻址1MB。8088为准16位机,时钟频率为4.77MHz;内部数据总线16位,外部数据总线是8位;地址总线为20位,可最大寻址1MB。与80286统称为16位计算机系列3

8086的功能结构内部暂存器

IP

ES

SSDSCS控制电路外部总线控制电路∑ALU标志存放器AHALBHBLCHCLDHDLSPBPSIDI通用存放器地址加法器指令队列执行部件〔EU)总线接口部件〔BIU)16位20位AB16位DB8位段存放器4

1.执行部件EU——负责执行指令。对指令译码、分析并发出控制命令,执行算术和逻辑运算。包含:

①算术逻辑运算单元ALU

运算器,用于8位、16位二进制算术和逻辑运算,计算寻址存储器所需的16位偏移量。②通用存放器组

AX、BX、CX、DX、SP、BP、SI、DI。③标志存放器

16位的存放器,反映运算结果的状态特征和控制标志。④控制电路负责从BIU的指令队列缓冲器中取指令,并对指令译码,并向EU内部各部件发出控制命令。52.总线接口部件BIU负责CPU对存储器和外设进行的信息交换,提供总线地址,将数据和指令存放到目的单元。包含:

①地址加法器和段存放器

1个20位地址加法器、用于形成20位的物理地址。②16位指令指针IP

指令指针IP用来存放下一条要执行指令的偏移地址。③指令队列缓冲器当EU正在执行指令中,且不需占用总线时,BIU会自动地进行预取指令操作,将所取得的指令按先后次序存入1个6字节的指令队列存放器,该队列存放器按“先进先出〞的方式工作,并按顺序取到EU中执行。④总线控制逻辑电路62.1.28086的存放器结构8086的存放器都为16位,分为:通用数据存放器 : AX、BX、CX、DX 地址指针和变址存放器:BP、SP、DI、SI段存放器: CS、SS、DS、ES指令指针和标志存放器 IP、PSW

掌握通用存放器的作用,熟悉PSW中各个标志的含义,才能正确地使用微机解决实际问题。7通用数据存放器8086的16位通用存放器是:

AX BX CX DX 4个16位数据存放器都可以分成高8位和低8位两个独立的存放器,它们是:

AHBHCHDHALBLCLDL

对其中某个8位存放器的操作,并不影响它所对应的另外一个8位存放器。各存放器的用法是:8数据存放器用来存放参加运算和运算结果的操作数的,每个存放器又有它们各自的专用目的:AX——16位累加器,使用频度最高,用于算术、逻辑运算以及与外设传送信息等;AL为8位累加器。BX——基址存放器,常用来做基址指针,指向一批连续存放操作数的基地址。CX——计数器,作为循环和串操作等指令中的隐含计数器。DX——数据存放器,用来存放外设端口的16位地址,或双字长数据的高16位。9变址存放器变址存放器常用于存储器寻址时提供地址SI是源变址存放器DI是目的变址存放器在串操作类指令中,SI和DI具有特别的功能指针存放器指针存放器用于寻址内存堆栈内的数据SP为堆栈指针存放器,指示栈顶的偏移地址。BP为基址指针存放器,表示数据在堆栈段中的基地址指令指针存放器IP指令指针存放器IP,指示代码段指令的偏移地址IP存放器是一个专用存放器,用户不能直接访问。10段存放器CS代码段存放器计算机通过CS:IP存放器联合使用来读取程序存储器的指令代码,从而控制指令序列的执行流程。

DS数据段存放器计算机通过DS:BX/SI/DI存放器联合使用来存取数据区〔RAM〕的临时数据。SS堆栈段存放器计算机通过SS:SP/BP存放器联合使用以确定堆栈段中的存储单元地址。ES附加段存放器计算机通过ES:DI存放器联合使用来存取附加段的数据。11标志存放器标志〔FLAGS〕是用于存放ALU执行完算术和逻辑运算后的状态标志和控制标志的存放器。反映指令执行结果或控制指令执行形式。8086处理器中各种常用的标志形成了一个16位的标志存放器FLAGS〔也称程序状态字PSW存放器〕。OF111512DF10IF9TF8SF7ZF65AF43PF21CF0控制标志反映结果状态反响运算过程12标志的作用标志分成两类:状态标志——用来记录程序运行结果的状态信息,许多指令的执行都将自动地改变它。

CFOFAFSFZFPF控制标志——可由用户根据需要用指令进行设置,用于控制处理器的具体工作方式。

DFIFTF13进位标志CF当运算结果的最高有效位有进位〔加法〕或借位〔减法〕时,进位标志置1,即CF=1;否那么CF=0。例如〔以8位运算为例〕:3AH+7CH=B6H 没有进位:CF=0AAH+7CH=〔1〕26H 有进位:CF=1符号标志SF运算结果最高位为1,那么SF=1;否那么SF=0。3AH+7CH=B6H 最高位D7=1:SF=186H+7CH=00H 最高位D7=0:SF=014奇偶标志PF当运算结果最低字节中“1〞的个数为零或偶数时,PF=1;否那么PF=0。3AH+7CH=B6H=10110110B,结果中有5个1,是奇数,那么PF=0

注意:PF标志仅反映最低8位中“1〞的个数是偶或奇,即使是进行16位字操作。辅助进位标志AF运算时D3位〔低半字节〕有进位或借位时,AF=1;否那么AF=0。例如:3AH+7CH=B6H D3向前有进位:AF=115溢出标志OF假设算术运算的结果有溢出,那么OF=1;否那么OF=0。例:3AH+7CH=B6H 产生溢出:OF=1AAH+7CH=〔1〕26H 没有溢出:OF=0

什么是溢出?溢出和进位有什么区别?处理器怎么处理,程序员如何运用?如何判断是否溢出?零标志ZF假设算术运算的结果为0,那么ZF=1;否那么ZF=016举例如:〔AX〕=734AH〔BX〕=5289H求〔AX〕+〔BX〕=?

0111001101001010+0101001010001001----------------------------------------1011010111010011ZF=0PF=0〔低8位〕SF=1CF=0OF=1AF=1〔低4位〕17方向标志DF用于串操作指令中,控制地址的变化方向:设置DF=0,串操作后存储器地址自动增量;设置DF=1,串操作后存储器地址自动减量。中断允许标志IF用于控制外部可屏蔽中断是否可以被处理器响应:设置IF=1,那么允许中断;设置IF=0,那么禁止中断陷阱标志TF用于控制处理器是否进入单步执行方式:设置TF=0,处理器正常工作;设置TF=1,处理器每执行一条指令就中断一次182.1.38086的工作模式和引脚特性8086CPU可工作在两种不同的模式最小模式单处理器模式,只有1个主控制器构成小规模的应用系统8088CPU本身提供所有的系统总线信号最大模式多处理器模式,8086为主处理器,可以接入数值协处理器8087和输入输出协处理器8089构成大规模的应用系统8086和总线控制器8288共同形成系统总线信号2.8086的工作模式193.8086的引脚特性12345678910111213141516171819204039383736353433323130292827262524232221

GNDA14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15AD16/S3AD17/S4AD18/S5AD19/S6BHE/S7MN/MX*RD*HOLD(RQ)*/GT0*)HLDA(RQ1*/GT1*)WR*(LOCK*)M/IO*(QS2

)DT/R*(QS1)DEN(QS0

)ALEINTATEST*READYRESET80868086CPU为双列直插40引脚的芯片20两种模式利用MN/MX*引脚区别MN/MX*接高电平为最小模式MN/MX*接低电平为最大模式两种组态下的内部操作并没有区别IBMPC/XT采用最大最小两种模式的信号分为:除读写控制引脚和总线请求和响应引脚不同而数据和地址引脚相同、中断请求和响应引脚相同其它引脚也相同21Vcc电源输入,向CPU提供+5V电源GND接地,向CPU提供参考地电平MN/MX*组态选择,输入接高电平时,8086引脚工作在最小组态;反之,8086工作在最大组态1、最小模式下的引脚信号22数据和地址引脚AD15~AD0:地址/数据分时复用引脚,双向A19/S6~A16/S3:地址/状态分时复用,输出、三态ALE地址锁存允许,输出、三态、高电平有效ALE引脚高有效时,表示复用引脚:AD7~AD0和A19/S6~A16/S3正在传送地址信息由于地址信息在这些复用引脚上出现的时间很短暂,所以系统可以利用ALE引脚将地址锁存起来23RESET复位信号,输入、高电平有效该信号有效,将使CPU回到其初始状态;当他再度返回无效时,CPU将重新开始工作8086复位后CS=FFFFH、IP=0000H,所以程序入口在物理地址FFFF0HCLK时钟输入,系统通过该引脚给CPU提供内部定时信号。8086的标准工作时钟为5MHzIBMPC/XT机的8088采用了4.77MHz的时钟,其周期约为210ns

24M/IO*

I/O/存储器访问选择,输出、三态该引脚输出低电平时,表示CPU将访问I/O端口,这时地址总线A15~A0提供16位I/O口地址该引脚输出高电平时,表示CPU将访问存储器,这时地址总线A19~A0提供20位存储器地址

WR*写控制,输出、三态、低电平有效表示CPU正在写出数据给存储器或I/O端口25M/IO*、WR*和RD*是最根本的控制信号组合后,控制4种根本的总线周期总线周期M/IO*WR*RD*存储器读低高低存储器写低低高I/O读高高低I/O写高低高RD*读控制,输出、三态、低电平有效表示CPU正在从存储器或I/O端口读入数据

26DEN*数据允许,输出、三态、低电平有效表示当前数据总线上正在传送数据,可利用他来控制对数据总线的驱动DT/R*数据发送/接收,输出、三态该信号说明当前总线上数据的流向高电平时数据自CPU输出〔发送〕低电平时数据输入CPU〔接收〕BHE*/S7高8位数据总线允许/状态复用引脚〔参看表2-3〕27READY存储器或I/O口准备就绪信号输入、高电平有效在总线操作周期中,8088CPU会在第3个时钟周期的前沿测试该引脚:如果测到高有效,CPU直接进入第4个时钟周期,否那么将插入等待周期TwCPU在等待周期中仍然要监测READY信号,有效那么进入第4个时钟周期,否那么继续插入等待周期Tw。TEST*测试,输入、低电平有效当CPU执行WAIT指令时,他将在每个时钟周期对该引脚进行测试:如果无效继续测试;如果有效,那么程序恢复运行在使用协处理器8087时,通过该引脚和WAIT指令,可使8088与8087的操作保持同步28INTR可屏蔽中断请求和响应引脚〕可屏蔽中断请求,输入、高电平有效有效时,表示请求设备向CPU申请可屏蔽中断并可通过关中断指令CLI去除标志存放器中的IF标志、从而对中断请求进行屏蔽INTA*可屏蔽中断响应,输出、低电平有效表示来自INTR引脚的中断请求已被CPU响应,CPU进入中断响应周期NMI非屏蔽中断请求,输入、上升沿有效该请求的优先级别高于INTR,并且不能在CPU内被屏蔽,当系统发生紧急情况时,可通过他向CPU申请不可屏蔽中断效劳29HOLD总线请求,输入、高电平有效表示总线请求设备向CPU申请占有总线HLDA总线响应,输出、高电平有效表示CPU已响应总线请求并已将总线释放此时CPU的地址总线、数据总线及具有三态输出能力的控制总线将全面呈现高阻,使总线请求设备可以顺利接管总线待到总线请求信号HOLD有效,总线响应信号HLDA也转为无效,CPU重新获得总线控制权

30“引脚〞小结CPU引脚是系统总线的根本信号可以分成三类信号:16位数据线:D0~D1520位地址线:A0~A19控制线:ALE、IO/M*、WR*、DT/R*、DEN、RD*、READYINTR、INTA*、NMI,HOLD、HLDARESET、CLK、Vcc、MN/MX、GND为兰色信号线在最大模式下有不同的定义312、最大模式下的引脚信号S2、S1、S0:总线周期状态信号,为最大模式下连接8288总线控制器的信号线,在执行不同指令的总线周期有6种不同的控制信号输出。见表2-4P27QS1、

QS0指令队列状态信号,表2.5p47RQ/GT0、RQ/GT1总线请求/总线允许LOCK总线封锁信号32S2*、S1*、S0*的编码意义S2*S1*S0*CPU的工作状态000

中断响应001I/O读010I/O写011

暂停100

取指101

存储器读110

存储器写111

过渡状态比照332、最小组式的系统组成〔P27〕1、8086的系统组成〔1〕20位地址总线—采用3片8282锁存器提供〔2〕16位数据总线—采用2片8286数据收发器进行驱动〔3〕系统控制信号—由引脚直接或由8288总线控制器提供〔最大模式〕〔4〕时钟、复位、准备好信号--由时钟发生器8284提供2.28086的系统组成和总线时序343、最大组式的系统组成⑴系统地址总线采用三态锁存器74LS373⑵系统数据总线通过三态双向缓冲器74LS245形成和驱动⑶系统控制总线主要由总线控制器8288形成MEMR*、MEMW*、IOR*、IOW*、INTA*〔4〕中断控制器8259形成中断响应控制线35系统总线信号MEMR*MEMW*IOR*IOW*INTA*DMA控制器AENBRDAEN’*AEN*CENA19~A12A11~A8A7~A0D16~D0AD7~AD0A11~A8A19/S6~A16/S3A15~A1274LS24574LS37374LS373GGG*DIR74LS3738086OE*8288DT/R*DENALES2*~S0*S2*~S0*MN/MX*OE*E*MRDC*AMTW*IORC*AIOWC*INTA*3674LS373同8282具有三态输出的TTL电平锁存器LE电平锁存引脚OE*输出允许引脚DQCQSR上升沿锁存:用负脉冲触发锁存3774LS245同82868位双向缓冲器,控制端连接在一起,低电平有效可双向导通,输出与输入同相E*=0,导通

DIR=1A→BDIR=0A←BE*=1,不导通ABTOE*38物理存储器是指实际的存储器芯片存储器内每1个存储单元存放8位2进制树8086CPU有20条地址线最大可寻址空间为220=1MB物理地址范围从00000H~FFFFFH为地址空间一个存储单元除具有一个唯一的物理地址编号1MB的内存分为偶地址和奇地址两个区域。4.8086的存储器组织与分段1〕物理存储器和地址空间398086系统的存储体结构

通常将8086CPU的地址线、数据线、读写线与内存条小板上对应存储器芯片引脚对应相连接,设计出具含有偶地址区和奇地址区的存储体结构。512KB需要19根地址线408086CPU有16位数据线,每次与内存传送的数据为16位〔1个字〕或8位〔1个字节〕。字长是16位,数据以字节为单位按地址存放,一个字存入存储器占有相继的二个单元:假设低位字节存入低地址,高位字节存入高地址那么为规那么字,相反为非规那么字。字单元的地址采用它的低地址来表示。例: 字单元:〔0004H〕=1234H,

字节单元:〔0004H〕=34H规那么字的存取操作可以在1个总线周期内完成非规那么字的存取操作需要2个总线周期才能完成41存储器的分段结构和物理地址的形成8088有20条地址总线,直接寻址能力为220=1M字节。用16进制数表示1M字节的地址范围应为00000H~FFFFFH。称为物理地址1、存储器的分段结构

程序员在编制程序时把存储器划分成逻辑段。段内地址16位,每个段的大小最大可达64KB;当然可以根据需要来确定段大小,可以是1,100,1000等在64K范围内的任意字节数。IBMPC机对段的起始地址有限制,段必须从任一小段的首地址开始。从0地址开始每16字节为一小段42物理地址是对应每个物理存储单元都有一个唯一的20位编号,从00000H~FFFFFH。逻辑地址是程序中出现的16位段基地址和段内偏移地址。是CPU中的20位地址加法器将段存放器和通用存放器中的16位地址码计算后由20位地址线上送出的。2.8086内部20位物理地址形成逻辑地址——段地址:偏移地址物理地址的形成:物理地址=段基地址*16〔左移4位〕+偏移地址

=〔CS,DS,SS,ES〕*10H+(IP,BX,SI,DI,BP,SP,)43逻辑段段基址偏移地址物理地址计算可替换段代码段CSIP(CS)16d+(IP)无堆栈段SSSP,BP(SS)16d+(SP、BP)无数据段DSBX、SI、DI、有效地址EA(DS)16d+(BX、SI)(DS)16d+EACS,ES,SS附加段ESDI(ES)16d+(DI)无编程各逻辑段的物理地址获得的方法如下:每个存储单元都有一个唯一20位物理地址,但可有多个逻辑段地址和偏移地址在指令执行时由地址加法器形成。例如:物理地址:00200H

逻辑地址:0000H:0200H

逻辑地址:0020H:0000H442.2.28086的总线时序时序是指信号上下电平〔有效或无效〕变化及相互间的时间顺序关系。总线时序描述CPU引脚如何实现总线操作CPU时序决定系统各部件间的同步和定时总线操作是指CPU通过总线对外的各种操作8086的总线操作主要有:存储器读、I/O读操作存储器写、I/O写操作中断响应操作总线请求及响应操作45时钟周期:一个时钟脉冲时间称为一个时钟周期。时钟周期由计算机的主频决定,是CPU的定时基准,例如,8086的主频为5MHz那么1个时钟为200ns。总线周期:8086CPU通过总线与存储器或外设交换信息,存取一个字节〔字〕根本操作所需的时间。即一个总线周期完成一个根本的操作,由四个时钟周期组成,分别称为T1、T2、T3和T4状态。当需要延长总线周期时需要插入等待状态Tw指令周期:一条指令从开始取指令到最后执行完毕所需的时间称为一个指令周期。1个指令周期由假设干个总线周期组成。46〔1〕最小组态的总线读操作

T4T3T2T1ALECLKA19/S6~A16/S3A15~A8AD7~AD0A15~A8A7~A0输入数据A19~A16S6~S3READY(高电平)IO/M*RD*T1状态——输出20位存储器地址A19~A0IO/M*输出低电平,表示存储器操作;ALE输出正脉冲,表示复用总线输出地址T2状态——输出控制信号RD*T3和Tw状态——检测数据传送是否能够完成T4状态——前沿读取数据,完成数据传送47存储器写总线周期T4T3T2T1ALECLKA19/S6~A16/S3A15~A8AD7~AD0A15~A8A7~A0输出数据A19~A16S6~S3READY(高电平)IO/M*WR*T1状态——输出20位存储器地址A19~A0IO/M*输出低电平,表示存储器操作;ALE输出正脉冲,表示复用总线输出地址T2状态——输出控制信号WR*和数据D7~D0T3和Tw状态——检测数据传送是否能够完成T4状态——完成数据传送48I/O读总线周期T4T3T2T1ALECLKA19/S6~A16/S3A15~A8AD7~AD0A15~A8A7~A0输入数据S6~S3READY(高电平)IO/M*RD*0000T1状态——输出16位I/O地址A15~A0IO/M*输出高电平,表示I/O操作;ALE输出正脉冲,表示复用总线输出地址T2状态——输出控制信号RD*T3和Tw状态——检测数据传送是否能够完成T4状态——前沿读取数据,完成数据传送49I/O写总线周期T4T3T2T1ALECLKA19/S6~A16/S3A15~A8AD7~AD0A15~A8A7~A0输出数据0000S6~S3READY(高电平)IO/M*WR*T1状态——输出16位I/O地址A15~A0IO/M*输出高电平,表示I/O操作;ALE输出正脉冲,表示复用总线输出地址T2状态——输出控制信号WR*和数据D7~D0T3和Tw状态——检测数据传送是否能够完成T4状态——完成数据传送50插入等待状态Tw同步时序通过插入等待状态,来使速度差异较大的两局部保持同步在读写总线周期中,判断是否插入Tw1.在T3的前沿检测READY引脚是否有效2.如果READY无效,在T3和T4之间插入一个等效于T3的Tw,转13.如果READY有效,执行完该T状态,进入T4状态512.5.3最

温馨提示

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

最新文档

评论

0/150

提交评论