资源描述
8051单片机的结构与功能单片机的结构与功能8051的基本功能的基本功能1.1.8 8位数据总线,位数据总线,1616位地址总线的位地址总线的CPUCPU;2.2.具有布尔处理能力和位处理能力;具有布尔处理能力和位处理能力;3.3.采用哈佛结构,程序存储器与数据存储器地址空间各自独采用哈佛结构,程序存储器与数据存储器地址空间各自独立,便于程序设计;立,便于程序设计;4.4.相同地址的相同地址的64KB64KB程序存储器和程序存储器和64KB64KB数据存储器;数据存储器;5.5.0-8KB0-8KB片内程序存储器片内程序存储器(8031(8031无,无,80518051有有4KB4KB,80528052有有8KB8KB,89C5589C55有有20KB)20KB);6.6.128128字节片内数据存储器(字节片内数据存储器(80518051有有256256字节);字节);7.7.3232根双向并可以按位寻址的根双向并可以按位寻址的I/OI/O线;线;8.8.两个两个1616位定时位定时/计数器计数器(8052(8052有有3 3个个);9.9.一个全双工的串行一个全双工的串行I/OI/O接口;接口;10.10.多个中断源的中断结构,具有两个中断优先级;多个中断源的中断结构,具有两个中断优先级;11.11.片内时钟振荡器。片内时钟振荡器。第二讲第二讲单片机单片机8051单片机结构单片机结构地址总线地址总线 AB存存储储器器I/OI/O接接口口输输入入设设备备I/OI/O接接口口输输出出设设备备微微处处理理器器CPU数据总线数据总线 DBDB控制总线控制总线 CBCBI/OI/O接接口口特点:特点:v以以微处理器微处理器(CPU)为核心)为核心vCPU与其他部件间通过与其他部件间通过三总线三总线连接连接AB:AddressBusDB:DataBusCB:ControlBus第二讲第二讲单片机单片机80511、地址总线(、地址总线(AddressBus,简写为,简写为AB)地址总线可传送单片机送出的地址信号,用于访问外部存地址总线可传送单片机送出的地址信号,用于访问外部存储器单元或储器单元或I/O端口。端口。地址总线是单向的,地址信号只是由单片机向外发出;地址总线是单向的,地址信号只是由单片机向外发出;地址总线的数目决定了可直接访问的存储器单元的数目地址总线的数目决定了可直接访问的存储器单元的数目。例如例如N位地址,可以产生位地址,可以产生2N个连续地址编码,因此可访问个连续地址编码,因此可访问2N个存储单元,即通常所说的寻址范围为个存储单元,即通常所说的寻址范围为2N个地址单元。个地址单元。MCS51单片机有十六位地址线,因此存储器扩展范围单片机有十六位地址线,因此存储器扩展范围可达可达216=64KB地址单元。地址单元。挂在总线上的器件,只有地址被选中的单元才能与挂在总线上的器件,只有地址被选中的单元才能与CPU交交换数据,其余的都暂时不能操作,否则会引起数据冲突。换数据,其余的都暂时不能操作,否则会引起数据冲突。总线总线:指能为多个部件服务的信息传送线。指能为多个部件服务的信息传送线。2、数据总线(、数据总线(DataBus,简写为,简写为DB)数据总线用于在单片机与存储器之间或单片机与数据总线用于在单片机与存储器之间或单片机与I/O端口之间传送数据。端口之间传送数据。单片机系统数据总线的位数与单片机处理数据的字长单片机系统数据总线的位数与单片机处理数据的字长一致一致。例如。例如MCS51单片机是单片机是8位字长,所以数据总线的位字长,所以数据总线的位数也是位数也是8位。位。数据总线是双向的,即可以进行两个方向的数据传送。数据总线是双向的,即可以进行两个方向的数据传送。3、控制总线(、控制总线(ControlBus,简写为,简写为CB)控制总线实际上就是一组控制信号线,包括单片机发出的,控制总线实际上就是一组控制信号线,包括单片机发出的,以及从其它部件送给单片机的各种控制或联络信号。以及从其它部件送给单片机的各种控制或联络信号。对于一条控制信号线来说,其传送方向是单向的,但是由对于一条控制信号线来说,其传送方向是单向的,但是由不同方向的控制信号线组合的控制总线则表示为双向的。不同方向的控制信号线组合的控制总线则表示为双向的。总线结构形式大大减少了单片机系统中连接线的数目,总线结构形式大大减少了单片机系统中连接线的数目,提高了系统的可靠性,增加了系统的灵活性。此外,总线提高了系统的可靠性,增加了系统的灵活性。此外,总线结构也使扩展易于实现,各功能部件只要符合总线规范,结构也使扩展易于实现,各功能部件只要符合总线规范,就可以很方便地接入系统,实现单片机扩展。就可以很方便地接入系统,实现单片机扩展。地地址址总总线线、数数据据总总线线和和若若干干控控制制线线把把存存储储器器和和微微处处理理器器连连接起来。接起来。存储器从存储器从CPU接收控制信号,以确定存储器执行读接收控制信号,以确定存储器执行读/写操作。写操作。地地址址总总线线将将地地址址信信息息送送入入地地址址译译码码器器,地地址址译译码码器器的的输输出出可以确定唯一的存储单元。可以确定唯一的存储单元。数数据据总总线线用用来来传传送送存存储储器器到到CPU或或CPU到到存存储储器器的的数数据据信信息息单片机总线的应用:单片机总线的应用:扩展数据存储器、扩展程序存储器。扩展数据存储器、扩展程序存储器。MCS-51单片机总线结构8051 功能框图功能框图8051CPU振荡器和时序振荡器和时序OSC64KB总线总线扩展控制器扩展控制器数据存储器数据存储器256BRAM/SFR216位位定时器定时器/计数器计数器可编程可编程I/O程序存储器程序存储器4KBROM可编程全双工可编程全双工串行口串行口外中断外中断内中断内中断控制控制并行口并行口I/OI/O口口:4 4个个8 8位位的的I/OI/O口口P0P0、P1P1、P2P2、P3P3。串行通信串行通信外部时钟源外部时钟源外部事件计数外部事件计数中央处理中央处理器器CPUCPU:8 8位,运位,运算和控算和控制功能制功能串行口串行口:一个全双:一个全双工串行口。工串行口。时钟电路:时钟电路:可产生时钟脉冲序列,允许可产生时钟脉冲序列,允许晶振频率晶振频率6MHZ6MHZ和和12MHZ12MHZ中断控制系统中断控制系统:5 5个中断源(外个中断源(外中断中断2 2个,定时个,定时/计数中断计数中断2 2个,个,串行中断串行中断1 1个)个)内部内部ROMROM:4KB4KB掩膜掩膜ROMROM,用于存放程序、,用于存放程序、原始数据和表格。原始数据和表格。定时定时/计数器计数器:两个:两个1616位的定时位的定时/计数器,实计数器,实现定时或计数功能。现定时或计数功能。内部内部RAMRAM:共:共256256个个RAMRAM单元,用户使用单元,用户使用前前128128个单元,用于个单元,用于存放可读写数据,后存放可读写数据,后128128个单元被专用寄个单元被专用寄存器占用。存器占用。MCS-51系列单片机内部组成系列单片机内部组成中央处理器(中央处理器(CPU););数据存储器(数据存储器(RAM););程序存储器(程序存储器(ROM););2个个l6位的定时器位的定时器/计数器;计数器;并行并行I/O口(口(32根根I/O线,线,4个个P口);口);外部存贮器寻址范围外部存贮器寻址范围ROM、RAM各各64K;全双工串行口;全双工串行口;中断系统(中断系统(5个中断源,个中断源,2个中断优先级)个中断优先级)时钟电路。时钟电路。P0驱动器驱动器P2驱动器驱动器P0锁存器锁存器P2锁存器锁存器RAM地地址寄存器址寄存器128BRAM4KBROMB寄存器寄存器暂存器暂存器1暂存器暂存器2ACCSP程序地址程序地址寄存器寄存器缓冲器缓冲器PC增增1PCDPTR中断、串行口和定时器中断、串行口和定时器PSWP1锁存器锁存器P1驱动器驱动器P3锁存器锁存器P3驱动器驱动器定定时时控控制制指指令令寄寄存存器器指指令令译译码码器器OSCALUP0.0-P0.7P2.0-P2.7P3.0-P3.7P1.0-P1.7XTAL1XTAL2PSENALEEARET用EPROM,为875180518051单片机单片机内部结构图内部结构图无ROM为8031EPROM运算器运算器(ALU、专用专用寄存器)寄存器)控制器控制器(由由定时定时和和控制部件构控制部件构成)成)1.CPU1.CPU中央处理器中央处理器CPUCPU是单片机的核心,是单片机的大脑和是单片机的核心,是单片机的大脑和心脏。它由心脏。它由运算器运算器和和控制器控制器等部件组成。等部件组成。作用:主要完成运算和控制功能。作用:主要完成运算和控制功能。第二讲第二讲单片机单片机8051运算器运算器(ALU、专用寄存专用寄存器)器)(1 1)运算器运算器 运算部件以算术逻辑单元运算部件以算术逻辑单元ALUALU为核心,加上为核心,加上累加器累加器ACCACC、寄、寄存器存器B B、暂存器、程序状态字、暂存器、程序状态字PSWPSW以及十进制调整电路和布尔处以及十进制调整电路和布尔处理器等许多部件组成的。理器等许多部件组成的。运算器的作用运算器的作用是把传送到微处理器的数据进行是把传送到微处理器的数据进行算术运算算术运算或或逻辑运算逻辑运算。(1 1)执行各种算术运算。)执行各种算术运算。(2 2)执行各种逻辑运算,并进行逻辑测试。)执行各种逻辑运算,并进行逻辑测试。如零值测试或两个值的比较。如零值测试或两个值的比较。ALUALU可对两个操作数进行加、减、与、或、比较大小等可对两个操作数进行加、减、与、或、比较大小等操作,最后将操作,最后将结果存入累加器结果存入累加器。数据寄存器数据寄存器累加器累加器ALUALU的两个主要的输入来源的两个主要的输入来源ALUALU执行不同的运算操作是由不同控制线上的信息所确定执行不同的运算操作是由不同控制线上的信息所确定的的。两个数(两个数(7 7和和9 9)相加,在相加之前,操作数)相加,在相加之前,操作数9 9放在放在累加累加器器中,中,7 7放在数据寄存器中,执行两数相加运算的控制线放在数据寄存器中,执行两数相加运算的控制线发出发出“加加”操作信号,操作信号,ALUALU即把两个数相加并把结果即把两个数相加并把结果(1616)存入)存入累加器累加器,取代累加器前面存放的数,取代累加器前面存放的数9 9。1)算术逻辑单元)算术逻辑单元(ALUArithmeticLogicUnitALUArithmeticLogicUnit)可以对可以对4位(半字节)位(半字节)8位(一字节)和位(一字节)和16位(双字节)位(双字节)数据进行操作。数据进行操作。作用:作用:完成算术四则运算和逻辑运算、位操作及循环移位等完成算术四则运算和逻辑运算、位操作及循环移位等逻辑操作,逻辑操作,操作结果的状态信息送至状态寄存器(操作结果的状态信息送至状态寄存器(PSW)。2)累加器)累加器ACC,在指令中用助记符在指令中用助记符A来表示来表示A是一个是一个8位寄存器,是位寄存器,是CPU中工作最繁忙的寄存器。中工作最繁忙的寄存器。MCS-51指令系统中多数指令的执行都通过它进行。作用:在算数逻辑运算中,作用:在算数逻辑运算中,它经常作为一个运算数经暂它经常作为一个运算数经暂存器存器2 2进入进入ALUALU的输入端,与另一个来自暂存器的输入端,与另一个来自暂存器1 1的运算数进的运算数进行运算,运算结果又送回行运算,运算结果又送回ACCACC。在与外部存储器和在与外部存储器和I/O接口打接口打交道时,完成数据传送。交道时,完成数据传送。3 3)寄存器寄存器B(8 8位寄存器位寄存器)4)2个个8位暂存器:位暂存器:(暂存器暂存器1和和暂存器暂存器2)ALUALU的两个入口处。的两个入口处。作用:在乘法和除法运算中用作作用:在乘法和除法运算中用作ALUALU的输入之一。的输入之一。乘法运乘法运算时,算时,ALUALU的两个输入分别为的两个输入分别为A A、B B,运算结果存放在,运算结果存放在A A、B B寄存寄存器中,其中器中,其中A A存放积的低存放积的低8 8位,位,B B则存放积的高则存放积的高8 8位位。除法运算除法运算时,被除数取自时,被除数取自A A,除数取自,除数取自B B;运算结果商数存于;运算结果商数存于A A,而余数,而余数存于存于B B。不作乘、除运算时,寄存器不作乘、除运算时,寄存器B B可作通用寄存器使用。可作通用寄存器使用。5)程序状态字寄存器)程序状态字寄存器PSW(程序状态标志寄存器程序状态标志寄存器)8位寄存器。位寄存器。作用:存放当前指令执行后操作结果的某些特征,为下一作用:存放当前指令执行后操作结果的某些特征,为下一条指令的执行提供依据。条指令的执行提供依据。程序状态字程序状态字PSWPSW各位标志的含义各位标志的含义CYACF0RS1 RS0OV-PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0PSW.7 CY 进位标志位进位标志位 PSW.6 AC 辅助进位(或称半进位)标志辅助进位(或称半进位)标志PSW.5 F0 用户标志位用户标志位 PSW.4,PSW.3 RS1和和RS0工作寄存器组选择位工作寄存器组选择位 PSW.2 OV 溢出标志位溢出标志位 PSW.1 未定义位未定义位PSW.0 P 奇偶标志位奇偶标志位vCY是是PSW中最常用的标志位。中最常用的标志位。v由硬件或软件置位和清零。由硬件或软件置位和清零。v在字节运算时:它表示运算结果是否有进位(或借位)在字节运算时:它表示运算结果是否有进位(或借位)。加法时:有进位加法时:有进位Cy由硬件置由硬件置“1”即即Cy=1;无进位无进位CY被硬件清被硬件清“0”即即Cy=0。减法时:有借位减法时:有借位Cy由硬件置由硬件置“1”即即Cy=1;无借位无借位CY被硬件清被硬件清“0”即即Cy=0。v在位操作(布尔操作)时:在位操作(布尔操作)时:CY作为累加器使用,其作用相当于字节操作的累加器作为累加器使用,其作用相当于字节操作的累加器ACC。位传送、位与位等位操作,进位标志位是固定的操。位传送、位与位等位操作,进位标志位是固定的操作位之一。作位之一。CYACF0RS1 RS0OV-PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0AC(PSW.6)辅助进位(或称半进位)标志。辅助进位(或称半进位)标志。当执行当执行加减运算加减运算时,其运算结果产生时,其运算结果产生低四位向低四位向高四位进位或借位高四位进位或借位时时,AC由硬件置由硬件置“1”;否则;否则AC位被自动清位被自动清“0”。一般在一般在BCD码运算时,系统用于进行十进制调码运算时,系统用于进行十进制调整。整。CYACF0RS1 RS0OV-PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0F0(PSW.5)用户标志位。用户标志位。用户可根据自己的需要对用户可根据自己的需要对F0位赋予一定的含位赋予一定的含义,由用户置位或复位,作为软件标志。义,由用户置位或复位,作为软件标志。SETB F0 ;置位置位 CLR F0 ;复位复位 CYACF0RS1 RS0OV-PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0RS1RS1(PSW.4PSW.4)、)、)、)、RS0RS0(PSW.3)PSW.3)寄存器区选择控制位。寄存器区选择控制位。寄存器区选择控制位。寄存器区选择控制位。RS1RS0寄存器组寄存器组片内片内RAM地址地址00第第0组组00H-07H01第第1组组08H-0FH10第第2组组10H-17H11第第3组组18H-1FHCYACF0RS1 RS0OV-PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0CPU通过对通过对PSW中的中的D4、D3位内容的位内容的修改,就能任选一个工作寄存器区。修改,就能任选一个工作寄存器区。例如:例如:PSW3=1;PSW4=0;PSW4=1;PSW3=0;PSW3=1PSW=1;选定第区选定第区选定第选定第2区区选定第区选定第区 OV(PSW.2)溢出标志位溢出标志位 它它反反映映运运算算结结果果是是否否溢溢出出,溢溢出出时时则则由由硬硬件件将将OV 位置位置“1”;否则置;否则置“0”。CYACF0RS1 RS0OV-PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0在带符号的加减运算中在带符号的加减运算中,若运算超出了累加器A所能表示的符号数的有效范围(-128127),则自动置1,表示产生了溢出,说明运算结果是错误的。否则为0。乘法运算中乘法运算中,Ov=1表示乘积超过255,即乘积分别在A和B中;否则为0,表示乘积只在A中。除法运算中除法运算中,Ov=1表示除数为0。P(PSW.0)奇偶标志位奇偶标志位P标志表明累加器标志表明累加器ACC中中1的个数的奇偶性。在的个数的奇偶性。在每条指令执行完后,单片机根据每条指令执行完后,单片机根据ACC的内容对的内容对P位位自动置位或复位。自动置位或复位。若累加器若累加器ACC中有中有奇数奇数个个“1”,则,则P=1;若累加器若累加器ACC中有中有偶数偶数个个“1”,则,则P=0。CYACF0RS1 RS0OV-PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0 溢出和进位是两种不同性质的概念。溢出和进位是两种不同性质的概念。溢出是指有正负号的两个数运算时,运算结果超溢出是指有正负号的两个数运算时,运算结果超出了累加器以补码所能表示一个有符号数的范围。出了累加器以补码所能表示一个有符号数的范围。而进位则表示两数运算最高位(而进位则表示两数运算最高位(D7)相加(或相)相加(或相减)有无进位(或借位)。减)有无进位(或借位)。CYACF0RS1 RS0OV-PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0组成:程序计数器(组成:程序计数器(PCPC)、指令寄存器()、指令寄存器(IRIR)、指令译码器()、指令译码器(IDID)、数据、数据指针(指针(DPTRDPTR)、堆栈指针()、堆栈指针(SPSP)以及定时控制电路等。)以及定时控制电路等。功能功能:对来自存储器中的指令进行译码,通过定时控制电路在规定的时刻发:对来自存储器中的指令进行译码,通过定时控制电路在规定的时刻发出各种操作所需的控制信号,使各部分协调工作,完成指令所规定的出各种操作所需的控制信号,使各部分协调工作,完成指令所规定的功能功能控制器是控制器是CPU的大脑中枢,是计算的大脑中枢,是计算机的指挥控制部件。机的指挥控制部件。(2)控制器控制器1)程序计数器(程序计数器(PC)16位计数器(位计数器(重要重要)PC是程序的字节地址计数器,是程序的字节地址计数器,16位专用寄存器,位专用寄存器,寻址范围为寻址范围为64KB。作用:作用:存放存放CPU执行的下一条待执行指令的地址,执行的下一条待执行指令的地址,具有自动加具有自动加1的功能。的功能。工作原理:当一条指令按照工作原理:当一条指令按照PC所指的地址从程序所指的地址从程序存储器中取出后,存储器中取出后,PC会自动加会自动加1,指向下一条指令。,指向下一条指令。基本工作过程可以描述为:基本工作过程可以描述为:PC中的数作为指令地中的数作为指令地址输出给程序存储器,程序存储器按此地址输出指令址输出给程序存储器,程序存储器按此地址输出指令字节,同时字节,同时PC本身自动加本身自动加1,指向下一条指令。,指向下一条指令。2)指令寄存器指令寄存器IR和指令译码器和指令译码器ID指令寄存器指令寄存器IR:8位寄存器位寄存器作用:用于暂存待执行的指令,等待译码。作用:用于暂存待执行的指令,等待译码。指令译码器指令译码器ID:作用:对指令寄存器中的指令进行译码,即将指令转变为所需作用:对指令寄存器中的指令进行译码,即将指令转变为所需的电平信号。的电平信号。根据译码器输出的电平信号,再经定时控制电路定时产生根据译码器输出的电平信号,再经定时控制电路定时产生执行该指令所需要的各种控制信号。执行该指令所需要的各种控制信号。程序程序程序程序存储器存储器存储器存储器PCPC取出取出取出取出指令码指令码指令码指令码指令指令指令指令寄存器寄存器寄存器寄存器IRIR指令指令指令指令译码器译码器译码器译码器IDID把指令转变把指令转变把指令转变把指令转变成所需要得成所需要得成所需要得成所需要得电平信号电平信号电平信号电平信号 CPU CPU 产生产生产生产生执行该指令所需执行该指令所需执行该指令所需执行该指令所需的各种控制信号的各种控制信号的各种控制信号的各种控制信号取指令取指令取指令取指令执行指令执行指令执行指令执行指令分析指令分析指令分析指令分析指令3)数据指针(数据指针(DPTR)16bit 16位专用寄存器。它可以对位专用寄存器。它可以对64K的外部数据的外部数据存储器和存储器和I/O口进行寻址。也可作为两个口进行寻址。也可作为两个8位寄存位寄存器。器。DPL(地址(地址82H):):DPTR的低字节,的低字节,DPH(地址为(地址为83H):):DPTR的高字节。的高字节。作用:用作外部数据存储器的地址指针,作用:用作外部数据存储器的地址指针,DPTR DPTR 主要用来存放主要用来存放 16 16 位地址,可通过它访问位地址,可通过它访问 64 KB64 KB外部数据存储器或外部程序存储器空间。外部数据存储器或外部程序存储器空间。(1)堆栈的概念)堆栈的概念堆栈是在堆栈是在RAM中专门开辟的一个特殊用途的存储区。中专门开辟的一个特殊用途的存储区。只能从一端存取数据的一个存储区。只能从一端存取数据的一个存储区。(2)堆栈的访问原则:)堆栈的访问原则:“先进后出先进后出”、“后进先出后进先出”。即先进入堆栈的数据。即先进入堆栈的数据后移出堆栈,即后进入堆栈的数据先移出堆栈。后移出堆栈,即后进入堆栈的数据先移出堆栈。(3)堆栈的结构)堆栈的结构堆栈的一端的地址是固定的,称为堆栈的一端的地址是固定的,称为栈底栈底;另一端的地;另一端的地址是动态变化的,称为址是动态变化的,称为栈顶栈顶。4)堆栈指针堆栈指针(SP)8bit(4)堆栈的操作方式)堆栈的操作方式两种操作方式两种操作方式:数据:数据进栈进栈(push)和数据和数据出栈出栈(pop)。进栈和出栈都是在栈顶进行进栈和出栈都是在栈顶进行进栈和出栈都是在栈顶进行进栈和出栈都是在栈顶进行,这就必然是按照,这就必然是按照“先进后先进后出出”、“后进先出后进先出”的方式存取数据。的方式存取数据。(5)堆栈的应用)堆栈的应用主要是用来暂时存放数据主要是用来暂时存放数据,有两种情况使用堆栈:有两种情况使用堆栈:一是一是CPU自动使用堆栈自动使用堆栈,当调用子程序或响应中断,处,当调用子程序或响应中断,处理中断服务程序时,理中断服务程序时,CPU自动将自动将返回地址存放到堆栈中;通返回地址存放到堆栈中;通过堆栈传递参数过堆栈传递参数。二是程序员使用堆栈二是程序员使用堆栈,用堆栈暂时存放数据。,用堆栈暂时存放数据。4)堆栈指针堆栈指针(SP)8bit(6)堆栈指针堆栈指针SP堆栈指针堆栈指针SP(Stack Pointer)中中为栈顶的地址为栈顶的地址,即,即SP指向栈顶指向栈顶。SP是访问堆栈的间址寄存器是访问堆栈的间址寄存器SP具有自动加具有自动加1、自动减、自动减1功能功能。当数据进栈时,当数据进栈时,SP先自动加先自动加1,然后,然后CPU将数据存入;将数据存入;当数据出栈时,当数据出栈时,CPU先将数据送出,然后先将数据送出,然后SP自动减自动减1。由于进栈时由于进栈时SP的值增加,即的值增加,即堆栈向地址大的方向生长堆栈向地址大的方向生长,并且并且栈顶是有效数据栈顶是有效数据,这种堆栈是,这种堆栈是满递增型堆栈满递增型堆栈。4)堆栈指针堆栈指针(SP)8bit下图是数据进栈的情况下图是数据进栈的情况数据从栈顶进入数据从栈顶进入E2E1E1SPSPSPE0E1E2E3E4E5E6E7E0E1E2E3E4E5E6E7E0E1E2E3E4E5E6E7A6,7B进栈后的状态进栈后的状态58进栈后的状态进栈后的状态 开始状态开始状态 21362136213658E258A67BE4E3 7B出栈后的状态出栈后的状态A6、58、36出栈后的状态出栈后的状态E7E7E6E6SPE5SPE5E3E4E0E4A6E3E358E2E236E1E121E021E07BA65836
展开阅读全文