《第章Intelx微处理器.ppt》由会员分享,可在线阅读,更多相关《第章Intelx微处理器.ppt(91页珍藏版)》请在三一办公上搜索。
1、作业:P231-7 1,3,51-8 1,3,51-9 1,3,51-101,2,31-16,1-7将下列十进制数转换为二进制数1、123、635、10001-8将下列二进制数转换为十进制数1、100100B3、11101B5、00100010B1-9将1-8中的二进制转换成十六进制1-10将下列十六进制数分别转换为二进制和十进制数1、2B9H2、F44H3、912H1-16求下列各式的补码运算1、40+172、85+(-63)3、72-504、28-(-60),第2章 Intel 8x86微处理器,2.1 8086/8088 CPU的结构2.2 8086/8088 CPU的引脚信号和工作模式
2、2.3 8086存储器系统2.4 8086/8088 的主要操作功能2.5 80286微处理器 2.6 80386/80486微处理器 2.7 Pentium微处理器,本章主要内容,8086和8088CPU的内部结构基本相同,但是外部性能有所区别,8086是16位数据总线,而8088是8位数据总线 8088用于处理外设数据及检测控制系统,2.1.1 执行部件,8086与8088差异,2.1 8086/8088 CPU的结构,2.1.1 执行部件,负责指令的执行,将指令译码并利用内部的寄存器和ALU对数据进行处理,2.1.1 执行部件,(1)通用寄存器组,功能:存放操作数和中间结果,处理“字”指
3、令时,用16位寄存器,处理“字节”指令时,用8位寄存器,AX(AH,AL)累加器 存放参加运算的操作数和运算结果,有些指令约定AX(AL)寄存器为累加器,如乘法、除法、输入/出指令。所有寄存器均可作累加器,2.1.1 执行部件,BX(BH,BL)基址寄存器 计算地址时用作基地址寄存器,用于扩展寻址,起变址作用,CX(CH,CL)计数寄存器 在某些指令中作隐含的计数器。例如循环操作、串操作及移位操作等,DX(DH,DL)数据寄存器 存放操作数和列表数据,在某些I/O操作期间,用来保存I/O端口地址,在乘除运算中有专用,2.1.1 执行部件,(2)专用寄存器组,SP 堆栈指针寄存器 访问堆栈段的栈
4、顶单元。栈是一种先进后出的数据结构,最后入栈的数据为栈顶数据,其单元地址称为栈顶地址,入栈:“船高水涨”,出栈:“水落船低”,2.1.1 执行部件,BP 堆栈区基地址寄存器 对堆栈段寄存器相对寻址的基地址寄存器,可访问堆栈段的任意单元,寄存器间接寻址、相对寻址、基址变址寻址、相对基址变址、访问数据段的任意单元在数据串中专用,2.1.1 执行部件,(3)算术逻辑单元,加法器,完成16位或8位算术逻辑运算,(4)标志寄存器 FR,2.1.1 执行部件,标志寄存器共有16位,其中7位未用,状态标志,CF(carry flag):进/借位标志当做16位或8位加减法运算时,最高位有进/借位,则CF=1,
5、否则CF=0。循环指令影响进位标志,用于寄存器程序运行的状态信号,由硬件根据运算结果自动设定,用作后续指令判断依据,2.1.1 执行部件,PF(parity flag)奇偶标志/奇偶校验位运算结果中若低8位中的“1”的个数为偶数,PF=1,若为奇数PF=0(奇校验方式),AF(Auxiliary Carry Flag)辅助进/借位标志当作16位或8位加减法运算时,最低四位向高四位有进借位AF=1,否则AF=0,用于BCD码的调整。专用BCD加减法,ZF(Zero Flag)零标志当算术或逻辑与计算指令生成结果为零时,则ZF=1,否则ZF=0,SF(Sign Flag)符号标志与运算结果的最高位
6、相同,若运算结果为负数,则SF=1,若为正数SF=0,2.1.1 执行部件,OF(Over Flag)溢出标志 当运算结果超出了机器数所能表示的范围时,称为溢出OF=1,否则OF=0 字节-128+127 字 3276832767 通常CF用于无符号数运算结果的溢出判断,而OF则用于有符号数的运算结果溢出判断,在8086系统中,有一条中断指令INTO(中断类型4)能够在发生溢出时,产生一个内部中断,CPU自动转入溢出中断服务程序中,并对溢出作相应处理,一般在指令运算后加上该指令,2.1.1 执行部件,看作无符号数运算:202+120=322,显然超出了8位二进制数所能表示的最大无符号数255,
7、运算结果溢出CF=1,看作有符号数运算:-54+(+120)=+66,运算结果不溢出OF=0,控制标志,IF(Interrupt Flag)中断标志 可由指令设置。当IF=1时,CPU开中断;当IF=0时,CPU关中断,IF只能对可屏蔽中断产生影响,而对非屏蔽中断和内部中断无影响,2.1.1 执行部件,DF(Direction Flag)方向标志 在串处理指令中,用于控制串处理的方向。当DF=0时,SI、DI自动增量;当DF=1时,SI、DI自动减量;该指令由方向控制指令设置或清除,TF(Trap Flag)(跟踪)陷阱标志 可由指令设置。当TF=1时,表示以单步方式执行程序,即CPU每执行完
8、一条指令,就自动产生一次内部单步中断中断类型1(也称为陷阱),进入系统控制程序,利用此功能可跟踪指令的执行状况,用于程序调试,2.1.1 执行部件,(5)内部控制逻辑电路,从指令队列缓冲器中取出指令,进行译码,产生各种控制信号,控制各种部件的工作,2.总线接口部件(BIU),2.1.1 执行部件,2.1 8086/8088 CPU的结构,2.1.2 总线接口部件,负责与存储器、I/O端口传送数据,包括对存储器的读写数据操作,对I/O端口的读写操作以及取指令操作,即BIU管理在存储器中读写程序和数据的实际处理能力,2.1.2 总线接口部件,2.1.2 总线接口部件,8086/8088地址引脚有2
9、0根,所以其寻址空间为2201MB,其地址范围为:00000HFFFFFH 将1MB空间分成16段,每段最大为64KB,每段的首地址必须能被16整除(即凡是能被16整除的地址均可定义为段首地址)目的:与8位机在软件保持兼容各段之间可以是连续、分开、部分重叠或完全重叠的当段首地址确定后,段内的16位地址称为偏移地址由于8086存储系统数据存贮器和程序存储器是统一编址的,分段可以使他们隔离,互不相扰,(1)段寄存器,2.1.2 总线接口部件,逻辑地址:程序中出现的地址是逻辑地址,是用符号地址表示的。逻辑地址包括段基址和偏移地址,CPU执行程序时,需要将逻辑地址转换为物理地址,称为地址重定位,物理地
10、址和逻辑地址,物理地址:是指信息在存储器中实际有效的地址单元号,CPU访问内存是按物理地址寻址的。每一个物理地址是由段基址和段内偏移量组成 物理地址段基址16偏移量,2.1.2 总线接口部件,1MB的存储空间可分为四种类型的段(代码段、数据段、堆栈段、附加段),段基址分别存放在对应的段寄存器中,CS 代码段寄存器 保存当前执行程序所在段的段基址,CS中的数乘16,再加上指令指针寄存器IP中的内容,即是下一条将要取出指令的代码的地址,2.1.2 总线接口部件,DS 数据段寄存器 保存有数据段的段基址。数据段是用来保存当前程序中的操作数和变量,SS 堆栈段寄存器 保存有堆栈段的段基址,SS中的数据
11、乘16,加上堆栈指针寄存器SP中的数形成栈顶地址,ES 附加段寄存器 进行字符串操作时,作为目的段地址使用,是一种附加的数据区,若要使用附加段,必须对ES置初值。在附加段中,DI寄存器用于存放附加段的偏移量,2.1.2 总线接口部件,(2)指令指针寄存器IP16位寄存器,目的:产生20位的物理地址。物理地址的获得方法:将段寄存器中的内容左移4位(或者乘以16)与偏移地址(即对段首的偏移量)在地址加法器内相加,产生20位的物理地址,用来存放将要取出指令的偏移地址,每执行一条指令,IP其增量大小与已执行指令的字节长度有关。程序以代码的形式存在于存储器中,每一条指令都有一个存放地址,IP总要指向下一
12、条将要执行的指令地址,(3)地址加法器,物理地址段基址16偏移量,2.1.2 总线接口部件,(4)指令队列缓冲器 8086有6字节缓冲器,8088有4字节缓冲器。在执行部件执行指令的同时,可以从内存中取出下一条或下几条指令放到缓冲器,一条指令执行完后,可立即译码执行下一条指令,从而解决了以往CPU取指令期间,运算器的等待问题。由于取指令和执行指令并行进行,从而提高了CPU的效率,(5)输入/出控制电路 输入/出控制电路控制CPU与外部电路的数据交换。8086有20条地址线,16条数据线,由输入/出控制电路控制分时复用的CPU芯片的16个引脚,(6)内部暂存器 用于内部数据的暂存,该部分对用户透
13、明,用户无权访问,2.1.2 总线接口部件,计算机是在时钟控制下进行工作的,若干个时钟完成一个基本操作,一个基本操作就是一个总线周期,CPU有若干种典型操作,构成相应的总线周期。如存储器的读写总线周期,I/O读写总线周期等,执行一条指令的时间称为指令周期,指令周期是由若干总线周期构成,8086/8088的基本总线周期是由4个时钟周期组成,在执行WAIT指令或READY引脚输入的状态为低电平时,都需要在T3和T4之间插入1个或若干个等待时钟周期Tw,2.1 8086/8088 CPU的结构,2.1.3 8086总线的工作周期,2.1.3 8086总线的工作周期,T2状态 CPU从总线上撤销有效地
14、址,使地址总线低16位呈高阻状态,为数据传输做准备。总线的高4位(A19A16)输出总线周期的状态信息,用于表示中断允许状态及正在使用的段寄存器名,T1状态 CPU向多路复用总线上发送地址信息,指出要寻址的内存单元地址或I/O端口地址。这期间CPU还要送出ALE(正向脉冲),在ALE下降沿将内存单元地址或I/O端口地址打入地址锁存器,2.1.3 8086总线的工作周期,T3状态 A19A16上的状态信息不变,地址总线低16位上出现CPU要写出的或准备读入的数据。若外设与内存来不及与总线交换数据,则应通过CPU的READY信号,在T3前沿(下降沿)之前向CPU申请插入等待状态TW,在T3及TW前
15、沿查询READY信号,查到高电平则结束等待状态,进入下一状态。否则继续插入等待,T4状态:总线周期结束 在一个总线周期之后,若不立即进入下一个总线周期,即CPU不与内存或外设交换数据或者指令队列已满,系统总线处于空闲状态,CPU执行总线空闲周期,总线空闲周期一般由一个或多个时钟周期组成,2.1.3 8086总线的工作周期,2.2.1 8086/8088CPU的引脚信号和功能,8086为40引脚双列直插式封装,某些引脚具有双重功能,称为引脚复用,分时复用 在同一个总线周期中不同的时钟周期内功能不同,模式复用 根据工作模式的不同引脚定义不同,2.2 8086/8088 CPU的引脚信号和工作模式,
16、2.2.1 8086/8088 CPU的引脚信号和功能,AD15AD0 地址/数据复用总线引脚,双向,分时复用 构造总线必须加锁存器,8088的高8位不做 复用,地址引脚是单向的,A16/S3A19/S6 地址/状态复用引脚,单向,分时复用访问 存储器时,在总线周期的T1时刻,做高4位 地址,T2、T3、TW、T4状态时,用于输出 状态信息。访问I/O端口时,输出均为低电 平,8086最多可访问64K个I/O端口,S4 S3 0 0 ES 0 1 SS 1 0 CS 1 1 DS,S6=0,8086/8088当前与总线相连,2.2.1 8086/8088 CPU的引脚信号和功能,2.2.1 8
17、086/8088 CPU的引脚信号和功能,NMI 非屏蔽中断,输入,上升沿有效 当该引脚出现有效信号时,CPU执行完指令后,立即响应中断,不受IF影响,软件也屏蔽不掉,中断类型号是2,INTR 可屏蔽中断,输入,高电平有效 CPU在执行每一条指令的最后一个时钟周期采样该引脚,若为高电平(若IF=1),则响应中断,CLK 时钟,输入 CPU和总线控制的基准定时脉冲,一个时钟周期内具有1/3有效高电平(即占空比33),其频率为4MHz、5MHz、8 MHz、10 MHz等,CPU的所有操作都是在时钟同步下进行的,2.2.1 8086/8088 CPU的引脚信号和功能,RESET 复位信号,高电平有
18、效,8086/8088要求复位信号至少维持4个时钟周期的高电平,以完成CPU内部寄存器的复位操作。复位后CPU从FFFF0H单元启动,在此处安排一条长转移指令,使CPU执行一条特定的启动程序,称为引导程序,2.2.1 8086/8088 CPU的引脚信号和功能,2.2.1 8086/8088 CPU的引脚信号和功能,READY“准备好”信号,输入,高电平有效,用来使CPU和慢速的存储器(或I/O设备)之间的速度匹配。当被访问的设备、数据没有准备好之前,该信号为低电平使CPU自动插入等待状态TW来延长总线周期,当数据或设备准备好时,该信号为高电平,CPU继续执行该总线周期,为避免失误设备送来的R
19、EADY信号,必须先经过时钟发生器8284,与时钟CLK同步后,再送入CPU的READY引脚,2.2.1 8086/8088 CPU的引脚信号和功能,2.2 8086/8088 CPU的引脚信号和工作模式,2.2.2 最小工作模式,ALE 地址所存允许信号、输出、高定平有效 在总线周期T1期间,ALE的下降沿将出现在AD15AD0总线上的地址信息锁在锁存器的输出端,并保持到数据的输入/输出完成。ALE不能浮空,2.2.2 最小工作模式,HLDA 总线请求回答信号,输出,高电平有效 HLDA=1,表示CPU同意让出总线,HOLD 请求占用总线,输入,高电平有效 当系统中其它模块或部件需要占用总线
20、时,向CPU发出申请,2.2.2 最小工作模式,2.2.2 最小工作模式,时钟发生器(8284)石英晶体振荡器(晶振)6MHz、8MHz、10MHz等时钟发生器产生系统需要的时钟信号CLK,同时对外部READY信号和系统复位信号RESET进行同步,输出到相应的8086引脚,保证READY信号能够出现在总线周期的T3时刻,2.2.2 最小工作模式,当系统中所连的存储器或外设较多时,需要增加数据总线的驱动能力,可以接总线驱动芯片8286,一片8286只能驱动8位数据线,需2片。OE端为输出使能端低电平有效,当OE=1时,控制门关,8286两端均处于高阻状,该信号由DEN控制。数据传送方向受T端控制
21、,当T=1时,数据传送方向AB,当T=0时,数据从B A,2.2.2 最小工作模式,2.2.3 最大工作模式,QS1和QS0指令队列状态信号,输出 这两个信号提供总线周期的前一个状态中指令队列的状态,2.2 8086/8088 CPU的引脚信号和工作模式,2.2.3 最大工作模式,、及 总线周期状态信号,输出 提供当前总线周期中所进行的数据传输过程类型,2.2.3 最大工作模式,RQ/GT1,RQ/GT0 总线请求信号(输入)/总线请求允许信号(输出)可供CPU以外两个协处理器用来发出使用总线请求和接收CPU对总线请求信号的回答信号。这两个应答信号都是双向的,2.2.3 最大工作模式,2.3.
22、1 存储器结构,8086/8088系统中存储器按字节编址,可寻址的存储器空间为1MB。1MB为220,因此每个字节所对应的地址应是20位(二进制数),这个20位的地址称为物理地址。,2.3 8086存储器系统,1.存储器的分段 8086/8088系统中,将1M存储空间分成若干个逻辑段,每个逻辑段容量小于等于64KB。允许它们在整个存储空间浮动,即段与段之间可以部分重叠、完全重叠、连续排列、断续排列,8086/8088存储空间中,把16字节的存储空间称作一节。为了简化操作,要求各个逻辑段从节的整数边界开始,也就是说段首地址低4位应该是“0”,因此就把段首地址的高16位称为“段基址”,存放在段寄存
23、器DS,CS,SS或ES中,段内的偏移地址存放在IP或SP中。,2.3.1 存储器结构,2.存储器中的逻辑地址和物理地址 任何一个逻辑地址由段基址和偏移地址两个部分构成,它们都是无符号的16位二进制数。存储器中任何一个存储单元对应一个20位的物理地址,也称为绝对地址,它是由逻辑地址变换得来的,2.3.1 存储器结构,物理地址=段基址16+偏移地址,2.3.1 存储器结构,2.3.1 存储器结构,3.存储体的构成,2.3.1 存储器结构,2.3.2 堆栈概念及8086堆栈,1.堆栈概念 堆栈是在内存中开辟的一个特定的区域,用以存放CPU寄存器或存储器中暂时不用的数据。它也是一种数据结构,只允许在
24、其一端进行数据插入或删除操作的线性表。,2.3 8086存储器系统,堆栈的操作有两种形式:入栈和出栈。入栈是将数据推入堆栈;出栈是将数据从堆栈中弹出。,访问堆栈原则:后进先出,即先进栈的内容后出栈,后进栈的内容先出栈。,2.3.2 堆栈概念及8086堆栈,建立一个堆栈方法:在内存中开辟一个区域作为堆栈,由堆栈指针寄存器SP指向它。SP指向的地址为栈顶地址,而栈底地址是固定不变的;栈底地址是由用户或操作系统设定。刚建立的堆栈是空栈,即堆栈的栈顶地址等于它的栈底地址。,堆栈的类型:向上生长型和向下生长型。,2.3.2 堆栈概念及8086堆栈,2.3.2 堆栈概念及8086堆栈,向上生长型的堆栈中,
25、栈底设在低地址单元。当有数据进栈时,首先堆栈指针寄存器SP加1或2,然后数据进栈;当数据出栈时,首先数据出栈,然后堆栈指针寄存器SP减1或2。具有这种类型的系统如MCS-51等。,向下生长型堆栈中,栈底设在高地址单元。当有数据进栈时,首先堆栈指针寄存器SP减1或2,然后数据进栈;当数据出栈时,首先数据出栈,然后堆栈指针寄存器SP加1或2。,2.3.2 堆栈概念及8086堆栈,2.8086堆栈 8086系统中的堆栈属于向下生长型。它在内存中所处的段称为堆栈段,其段基址存放在堆栈段寄存器SS内。,特点:1)用进栈指令向堆栈中存放数据时总是从高地址开始逐渐向低地址方向增长,而不像内存中的其他段,从低
26、地址开始向高地址存放数据。2)“后进先出”的原则,凡是用进栈指令最后推入堆栈的数据,用出栈指令弹出时最先出栈。,堆栈的用途:1)在调用子程序(或过程)或发生中断时用推入堆栈的办法保护断点的地址,当子程序返回或中断返回时将断点地址从堆栈中弹出,以便继续执行主程序。,2.3.2 堆栈概念及8086堆栈,2)当寄存器不够用而需要将同一个寄存器存放两个以上的参数时,可以利用堆栈作为缓冲器。,2.3.2 堆栈概念及8086堆栈,2.4.1 系统的复位和启动操作,8086/8088的复位和启动操作是在RESET引脚上加上触发信号来执行的,2.4 8086/8088 CPU的主要操作功能,复位信号(RESE
27、T)至少有4个时钟周期的高电平,如果是初次加电的启动,则要求有大于50s的高电平。,2.4.1 系统的复位和启动操作,2.4.2 最小模式下的总线操作,总线操作:总线读操作及总线写操作。总线读操作指CPU从存储器或外设端口读取数据。总线写操作指CPU把数据写入存储器或外设端口。,2.4 8086/8088 CPU的主要操作功能,1.最小工作模式下的总线读操作,2.4.2 最小模式下的总线操作,2.最小工作模式下的总线写操作,2.4.2 最小模式下的总线操作,2.4 8086/8088 CPU的主要操作功能,3.最小工作模式下的总线保持,2.4 8086/8088 CPU的主要操作功能,4.最大
28、工作模式下的总线读/写操作,2.5 80286微处理器,1.80286 微处理器,是一种超级16位微处理器AB线:24根;DB线:16根,特点:,虚拟存储器与物理存储器的区别:,空间大小不相同虚拟存储器是程序可占有的空间,这个空间是由磁盘等外部存储器来实现的物理存储器是CPU可以访问的存储器,映射:虚拟地址(逻辑地址)物理地址 方法:段描述符,2.5 80286微处理器,2.5 80286微处理器,80286寄存器组:,2.5 80286微处理器,不可见,2.5 80286微处理器,高速缓冲存储器(Cache),命中率:在CPU访问Cache时,所需信息恰好在Cache中的概率Cache与内存
29、的空间比为1:128,2.5 80286微处理器,机器状态寄存器(MSW):,16位,用于表示80286当前所处的工作方式与状态,PE(实地址方式与保护方式转换位):PE=1:表示80286已从实地址方式转换为保护方式,且除复位外,不能被清除PE=0:表示80286当前在实地址方式下操作,2.5 80286微处理器,EM(协处理器仿真状态位):MP=1,EM=0:表示系统有协处理器 MP=0,EM=1:表示没有协处理器可供使用,系统要用软件仿真协处理器的功能,TS(任务转换位):每当两个任务之间转换时就把TS=1,一旦任务转换完成,则TS=0。在TS=1时,不允许协处理器工作。只有任务转换完成
30、后,协处理器方可在下一个任务中工作,MP(监控协处理器位):MP=1:表示协处理器80287在工作 MP=0:表示80287协处理器未工作,2.5 80286微处理器,任务寄存器(TR):64位,只能在保护方式下使用,用于存放表示当前正在执行的任务的状态。当进行任务切换时,就用它来自动地保存和恢复机器状态,描述符表寄存器(LDTR、GDTR、IDTR):LDTR:局部描述符表寄存器,64位,用来存放局部描述符表的段地址信息。由CPU自动装入 GDTR:全局描述符表寄存器,40位,用来存放全局描述符表的段地址信息。由操作系统初始化时自动装入IDTR:中断描述符表寄存器,40位,用来存放中断描述符
31、表的段地址信息。由CPU自动装入,2.5 80286微处理器,是一种高性能32 位微处理器AD线:32根;DB线:32根,1.80386/80486微处理器的功能结构 支持多用户、多任务模式,按流水线方式工作,硬件支持段式管理和页式管理,2.6 80386/80486微处理器,2.6 80386/80486微处理器,80386寄存器,2.6 80386/80486微处理器,2.6 80386/80486微处理器,80486 微处理器:,采用“精简指令集计算”RISC技术(Reduced Instruction Set Computing),使常用指令更加精简,能在1个时钟周期内就执行完,提高了
32、计算机的运算速度 内含8KB cache(称为一级cache),用于对频繁访问的指令和数据实现快速的混合存放 内含浮点运算部件内部数据总线宽度为64位,CPU与cache之间的数据通道为128位,支持多处理器系统,2.6 80386/80486微处理器,2.6 80386/80486微处理器,2.80386/80486工作方式 32位微处理器有3种工作方式,即实地址方式,保护方式和虚拟8086方式。,2.6 80386/80486微处理器,3.80386/80486多任务及任务转换 所谓多任务系统是指CPU能够分时和实时处理两个以上程序的系统。,2.7 Pentium微处理器,P5具有64条数
33、据线和32条地址线,最大实地址空间为232=4GB,最大虚地址空间为246=64TB Pentium的核心部件是三个执行部件:即两个整数指令流水线(U流水线和V流水线)以及浮点流水线部件FPU,1.Pentium机的内部结构,2.7 Pentium微处理器,指令流水线技术:,2.7 Pentium微处理器,双路CACHE结构:,转换后备缓冲器:将线性地址翻译成为物理地址,2.7 Pentium微处理器,2.Pentium机的寄存器结构,内部寄存器均为32位,与80386类似,2.7 Pentium微处理器,3.Pentium机的中断系统,Pentium处理器的中断系统采用向量中断结构工作方式:保护方式和实地址方式实地址方式下的中断操作与8086相同保护方式下的中断处理除了与8086系统兼容外,还支持多处理器的高级可编程中断技术,2.7 Pentium微处理器,保护方式的中断处理过程与实地址方式的区别:,CPU根据中断类型号从中断描述符表而不是从中断向量表获取中断服务程序入口的有关信息,中断描述表的起始地址可由程序选择中断过程中要对被中断的程序代码进行保护,要进行特权级检查如果有出错码,还要将出错码压入堆栈,2.7 Pentium微处理器,