【文档说明】汇编语言接口技术第二章80X86微处理器课件.ppt,共(40)页,300.501 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-44795.html
以下为本文档部分文字说明:
第二章8086微处理器•2.18086微处理器2.1.18086CPU的内部结构2.1.28086的内部寄存器组2.1.38086的引脚信号•2.2存储器物理地址的形成2.2.1存储器结构2.2.2物理地址的形成2.2.3
存储器单元的地址和内容微型计算机的核心是微处理器,IBMPC系列微机采用Intel公司生产的80x86系列微处理器,其典型产品有8086~Pentium系列。要了解微型计算机,必须先了解微处理器,了解微处理器中寄存器的功能、存储管理方式、微处理器
芯片引脚功能和总线时序等。2.18086微处理器•8086CPU的内部结构•8086的内部寄存器组•8086的引脚信号一、8086/8088的内部结构8086/8088是Intel公司于1978年6月推出的16位微处理器,它们的主要特点是:数据线为16位,可进行8位(字节)和16位(字)运算;地址
线为20位,可寻址1MB存储空间;时钟频率为5~8MHz。内部结构由执行单元EU和总线接口单元BIU两部分构成,其内部结构框图如图2—1所示。1.执行单元(EU)EU由算术逻辑单元(ALU)、16位标
志寄存器(FR)、通用寄存器组(4个16位通用寄存器、2个16位指针寄存器、2个16位间址寄存器)、指令译码器和控制电路组成。EU是指令执行部件,它从BIU的指令队列中取指令,进行指令译码,并发出相应的控制命令序列执行指令。2.总线接口
单元(BIU)BIU包括4个16位段寄存器(CS、DS、ES、SS)、1个16位指令指针(IP)、1个地址加法器、1个6字节(8088为4字节)的指令队列和总线控制电路,它负责从存储器中取指令并存放在指令队列中供CPU执行。在执行指令过程中,使用的操作数地址由段基
址和偏移量组成,其中16位偏移量先由EU计算得出,再由BIU将其与段基址(段寄存器的内容)合在一起形成20位物理地址。BIU的功能是实现CPU与内存的数据交换,并可根据EU的请求与I/O接口电路交换数据。二、8086的内部寄存器组8086CPU的寄存器结构如右图所示,它包含13个16位
的寄存器和1个16位的状态标志寄存器。AHALBHBLCHCLDHDLSPBPSIDICSDSSSESAX累加器BX基数CX计数DX数据数据寄存器堆栈基数源变址目的变址指针寄存器变址寄存器代码段数据段堆栈段附加数据段段寄存器通用寄存器IPFLAGS指令指针状态标志1.通用寄存器作用:操作
数据可直接存放在通用寄存器中,可减少访问存储器的次数,使用寄存器的指令长度也较短。这样,即提高了数据处理速度,也减少了指令存放的内存空间。分类:通用寄存器是指EU中的4个16位寄存器:AX、BX、CX和DX。一般用来
存放16位的数据,它又可以分为高字节H和低字节L两组,用以存放8位数据。通用寄存器多数被用在算术逻辑运算指令中,有些指令中,则有隐含的特定的用途,如AX在字乘字除运算中规定存放被乘数和被除数;CX在数据串操作中用来存放循环次
数等等,这些内容在讲解第三章的指令系统的过程中都会涉及到。2.专用寄存器专用寄存器包含4个16位寄存器。其中SP用来指示位于当前堆栈段中数据的偏移地址,BP一般用来存放访问内存时的基地址,SP和BP称为指针寄存器;SI和DI用来存
放当前数据段中数据的偏移地址,称为变址寄存器。3.段寄存器8086运行一汇编语言程序,一般需要4个现行段,分别是代码段、数据段、堆栈段和附加段,这4个段的段地址分别由4个16位的段寄存器CS、DS、SS和ES来存放。4.指令指针寄存器指令指针寄存器IP是一个16位的寄存
器,存放EU要执行的下一条指令的偏移地址。用户不能直接访问寄存器IP。5.状态标志寄存器FLAGS标志寄存器共有16位,其中9个位作为标志位,其余7位未定义,根据功能,8086的标志位可以分为两类:状态标志位和控制标志位。1)状态标志位状态标志位用来反映EU执行算术或逻辑运算后其结果的
状态,共有6个状态标志,各个位的含义如下:①符号标志SF(signflag):指出运算结果是正还是负,和运算结果的最高位相同。②零标志ZF(zeroflag):指出运算结果是零还是非零,如果运算结果是零,则ZF=1;否则,ZF=0。③奇偶标志PF(parityflag):如果运算结果的
低8位中所含的1的个数为偶数,则PF=1;否则,PF=0。④进位标志CF(carryflag):如果运算结果的最高位上产生一个进位或借位,则CF=1;如果无进位或借位,则CF=0。⑤辅助进位标志AF(auxiliaryca
rryflag):如果运算结果的低4位产生一个进位或借位,则AF=1;否则,AF=0。⑥溢出标志OF(overflowflag):如果在运算过程中产生了溢出,则OF=1,否则,OF=0。在大多数情况下
,一次运算后,并不对所有的标志进行改变,程序也大多只对其中某个标志进行检测。2)控制标志位控制标志有3个,即DF、IF、TF。①方向标志DF(directionflag):用于控制串操作指令的标志。如果DF=0,则串操作过程中地址不断增加;
如果DF=1,则串操作过程中地址不断减少。②中断允许标志IF(interruptenableflag):用于控制可屏蔽中断的标志。如果IF=0,则微处理器不能对可屏蔽中断请求作出响应;如果IF=1,则微处理器可以接受可屏蔽中断请求。③跟踪标志TF(trapflag):又称单步标志。如果TF=1
,则微处理器按跟踪方式执行指令。这些控制标志一旦设置之后,便对后面的操作产生控制作用。三、8086的引脚信号•最小工作模式及最大工作模式概念•8086/8088引脚信号及功能1最小工作模式在系统中只有8086或者8088一个微处理器。在这种系统中,所有的控制信号直接由8
086或8088产生,因此,系统中的总线控制逻辑电路被减到最少。2最大工作模式是相对最小工作模式而言。在此工作模式系统中,一般包含两个或两个以上微处理器,主处理器还是一个8086或者8088,其他的处理器称为协处理器
,它们是协助主处理器工作的。38086最小模式引脚信号具体见图2-3,其中括号内为最大模式的引脚名称。01020304050607080910111213141516171819204039383736353433323130292827262524232221GNDAD14AD13AD12AD1
1AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCC(+5V)AD15A16/S3A17/S4A18/S5A19/S6/BHE/S7MN//MX/RDHOLD(/RQ//G
T0)HLDA(/RQ//GT1)/WR(/LOCK)M//IO(/S2)DT//R(/S1)/DEN(/S0)ALE(QS1)/INTA(QS0)/TESTREADYRESET8086微处理器1、地址/数据总线•AD15-AD0:地
址/数据复用引脚,双向,三态。•(8086/8088)AD15-AD0:16位地址总线A15-A0,输出访问存储器或I/O的地址信息。•(8086)AD15-AD0:16位数据总线D15-D0,与存储器和I
/O设备交换数据信息。•(8088)AD7-AD0:8位数据总线D7-D0,与存储器和I/O设备交换数据信息。•地址/数据总线复用,分时工作。2、地址/状态总线A19/S6-A16/S3A19/S6-A16/S3:地
址/状态总线复用引脚,输出,三态。A19/S6-A16/S3:输出访问存储器的20位地址的高4位地址A19-A16。A19/S6-A16/S3:输出CPU的工作状态。A19/S6-A16/S3:分时工作,T1状态:输出地址的高4位信息;T2、T3、T4状态:
输出状态信息。S6:指示8086/8088当前是否与总线相连,S6=0,表示8086/8088当前与总线相连。S5:表明中断允许标志当前的设置。S5=0,表示CPU中断是关闭的,禁止一切可屏蔽中断源的中断请求;S5=1,
表示CPU中断是开放的,允许一切可屏蔽中断源的中断申请。S4、S3:指出当前使用段寄存器的情况。3、控制总线(1)/BHE/S7:高8位数据总线允许/状态复用引脚。在总线周期的T1状态,此引脚输出/BHE信号,表示高8位数据线D15-D8上
的数据有效。(2)/RD:读信号,三态输出,低电平有效。/RD=0,表示当前CPU正在对存储器或I/O端口进行读操作。(3)/WR:写信号,三态输出,低电平有效。/WR=0,表示当前CPU正在对存储器或I/O端口进行读操作。(4)M//IO:存储器或IO端口访问信号,三态输出。M//IO=1,表
示CPU正在访问存储器;M//IO=0,表示CPU正在访问IO端口。(5)READY:准备就绪信号,输入,高电平有效。READY=1,表示CPU访问的存储器或IO端口已准备好传送数据。若CPU在总线周期T3状态检测到READY=0
,表示未准备好,CPU自动插入一个或多个等待状态TW,直到READY=1为止。(6)INTR:可屏蔽中断请求信号,输入,高电平有效。当INTR=1,表示外设向CPU发出中断请求,CPU在当前指令周期的最后一个T状态去采样该信号,若此时,IF=1,C
PU响应中断,执行中断服务程序。(7)/INTA:中断响应信号,输出,低电平有效。表示CPU响应了外设发来的中断申请信号INTR。(8)NMI:不可屏蔽中断请求信号,输入,上升沿触发。该请求信号不受IF状态的影响,也不能用软件屏蔽,一旦该信号有效
,则执行完当前指令后立即响应中断。(9)/TEST:测试信号,输入,低电平有效。当CPU执行WAIT指令时,每隔个时钟周期对/TEST进行一次测试,若/TEST=1,继续等待,直到/TEST=0。(10)RESET:复位信号,输入,高电平有效。RESET信号至少要保持4个时钟周期。
复位时:标志寄存器、IP、DS、SS、ES为0,CS=FFFFH,复位后CPU从FFFF0H处开始执行。(11)ALE:地址锁存允许信号,输出,高电平有效。用来锁存地址信号A15-A0,分时使用AD15-AD0地址/数据总线。(12)DT//R:数据发送/接收
控制信号,三态输出。此信号控制数据总线上的收发器8286的数据传送方向,DT//R=1,发送数据----写操作;DT//R=0,接收数据--读操作。(13)/DEN:数据允许信号,三态输出,低电平有效。作为数据总线上收发器8286的选通信号。(14)HOLD:总线请求信号,输入
,高电平有效。当系统中CPU之外的另一个控制器要求使用总线时,通过它向CPU发一高电平的请求信号。(15)HLDA:总线请求响应信号,输出,高电平有效。当HLDA有效时,表示CPU对其它控制器的总线请求作出响应,与此同时,所
有与三总线相接的CPU的线脚呈现高阻抗状态,从而让出总线。(16)MN//MX:工作模式选择信号,输入。MN//MX=1,表示CPU工作在最小模式系统;MN//MX=0,表示CPU工作在最大模式系统。(17)CLK:主时钟信号,
输入。8086/8088的时钟频率为5MHZ。4、电源线和地线8086/8088采用单+5V,1、20引脚为地线。5、最大模式下的有关引脚(1)QS1、QS2:指令队列状态信号,输出。(2)S2、S1、S
0:总线周期状态信号,三态输出。(3)/RQ//GT1、/RQ//GT2:总线请求信号(输入)/总线请求允许信号(输出),双向,低电平有效。(4)/LOCK:总线封锁信号,三态输出,低电平有效。/LOCK=0,CPU不允许其它控制器占用总线。2.2存储器物理地址的形成•存储器结构•物理
地址的形成•存储器单元的地址和内容2.2.1存储器结构8086系统中存储器是按字节编址,由于8086有20根地址线,所以可寻址的存储器空间为1MB,其地址范围从00000H~FFFFFH。在8086系统中,存储器组织实际上是以字节为单位组成的一维线性空间。1MB的内存空间实际上
被分为两个512KB的存储体,分别是奇存储体和偶存储体。奇存储体中每个单元的地址均为奇数,偶存储体中每个单元的地址均为偶数。存储器交叉编址结构示意图2.2.2物理地址的形成•1.存储器的段结构•2.物理地址的形成定义:把1MB空间分为若干逻辑段,每段最多可包含64KB的连续存储单元。段内地
址是连续的,因此1MB的存储空间可分成16个逻辑段(0~15)。目的:为了实现用16位寄存器寻址1M的内存空间。这样,一旦所需访问的段被确定以后,就采用16位寻址方法在段内寻找要访问的存储单元。段与段之间允许在整个空间浮动,即段与段之间可以部分重叠完全重叠、连续排列、断续排列,编程人员使用起来
非常灵活。1.存储器的段结构段基址在存储器中对应的分段情况2.物理地址的形成•为了得到20位的物理地址,先利用存储器的分段技术得到逻辑地址,再由逻辑地址变换为物理地址(又称绝对地址)。逻辑地址一般表示为段基址:偏移地址(如3000H:0200H)。•转换公式计算:•物理地址=段基址×
16+偏移地址8086物理地址的形成2.2.3存储器单元的地址和内容存储器用来存放数据和程序。在计算机内部,数据和程序都用二进制代码的形式表示,一个存储器可划分为很多存储单元,存储单元中的内容可能为数据或指令。为了能识别不同的单元
,我们分别赋于每个单元一个编号,这个编号称之为地址。显然,各存储单元的地址与该地址存放的内容是两个完全不同的概念,切不可混淆。试求出下列运算后各个状态标志位的值是多少?(1)1278H+3469H(2)3881H+3597H1.设现行数据段位于存储器B0000H到BFFFFH存储单元,D
S段寄存器内容为多少?2.若(CS)=5200H,物理转移地址为5B230H,则当CS的内容被设为7800H,物理转移地址为多少?3.现有8字节的数据分别为11H,22H,33H,44H,55H,66H,77H,88H,已知它们在存储器中的物理地址
为200B6H-200BDH,若当前(DS)=2002H,请说明它们的偏移地址值。如果从存储器中读出这些数据,至少需要访问几次存储器,各读出哪些数据?Thankyouverymuch!本章到此结束,欢迎大家提出宝贵意
见!