(SFR)CPU中的专用寄存器累加器1三通用寄存器程序计数器四、堆栈指针五、数据指针关、程序状态字寄存器七、电源控制及波特率选择寄存器PCON退出
CPU中的专用寄存器(SFR) 一、累加器Acc 二、通用寄存器B 三、程序计数器PC 四、堆栈指针SP 五、数据指针DPTR 六、程序状态字寄存器PSW 七、电源控制及波特率选择寄存器PCON 退出
累加器ACC为8位寄存器,简称为A。字节0E0H位0E0H~0E7H。用于存放操作数或运算的中间结果。它通过暂存器TMP2与ALU相,为ALU提供一个操作数。A是CPU中使用最频繁的寄存器例:MOVA, #6 ; AADDA, #7: A _(A)+7结果:(A)=13返回
累加器Acc 为8位寄存器,简称为A。字节0E0H 位 0E0H~0E7H。用于存放操作数或运算的 中间结果。它通过暂存器TMP2与ALU 相,为ALU提供一个操作数。A是CPU 中使用最频繁的寄存器。 例:MOV A,#6 ;A 6 ADD A,#7 ;A (A)+7 结果:(A)=13 返回
通用寄存器BB是一个专为乘法和除法运算设置的8位寄存器一般与累加器A配合使用。字节FOH位FOH~F7H。B在乘法或除法前,用来存放乘数或除数,在乘法或除法完成后用来存放乘积的高8位或除数的余数。对于其它指出令,寄存器B可用来存中间结果。例:65HMOV A, #65H : A34HMOV B, #34H: BAB;BAMULA X B=65H X 34H结果(A)=84H(B)=14H返回
通用寄存器B B是一个专为乘法和除法运算设置的8位寄存器, 一般与累加器A配合使用。字节F0H 位 F0H~F7H。B在乘法或除法前,用来存放乘数 或除数,在乘法或除法完成后用来存放乘积的 高8位或除数的余数。对于其它指出令,寄存 器B可用来存中间结果。 例: MOV A,#65H ;A 65H MOV B,#34H ;B 34H MUL AB ;BA A X B=65H X 34H 结果(A)=84H (B)=14H 返回
程序计数器PCPC是一个16位的寄存器,具有自动加1功能,用来存放下一条要执行的指令在程序存储器中地址,以保证程序按人们编写的顺序执行。编码范围:0000H~FFFFH。当要执行一段程序时,必须预先按指令的执行顺序把程序放到ROM中,然后从第一条指令并始,取出一条执行一条,直到程序执行完毕。如何保证这一顺序呢?这就必须要有一个具有自动加1功能的寄存器来保存当前要取出的地址,这就是PC。在程序开始执行之前,先将程序的起始地址(即程序的第一条指令的地址)送入PC,CPU把PC的值作为地址,通过地址总线送入存储器,取出程序的第一条指令。每取出一个字节PC自动加1。所以有人认为PC是CPU的“向导”PC在物理结构上是独立的,不属于SFR区,无字节地址和位地址但仍是具有专用功能的寄存器,所以有人认为片内SFR有22个。返回
程序计数器PC PC是一个16位的寄存器,具有自动加1功能,用来存放下一条要 执行的指令在程序存储器中地址,以保证程序按人们编写的顺序 执行。编码范围:0000H~FFFFH。 当要执行一段程序时,必须预先按指令的执行顺序把程序放到 ROM中,然后从第一条指令开始,取出一条执行一条,直到程 序执行完毕。如何保证这一顺序呢?这就必须要有一个具有自动 加1功能的寄存器来保存当前要取出的地址,这就是PC。 在程序开始执行之前,先将程序的起始地址(即程序的第一条指 令的地址)送入PC,CPU把PC的值作为地址,通过地址总线送 入存储器,取出程序的第一条指令。每取出一个字节PC自动加1。 所以有人认为PC是CPU的“向导” 。 PC在物理结构上是独立的,不属于SFR区,无字节地址和位地址, 但仍是具有专用功能的寄存器,所以有人认为片内SFR有22个。 返回
堆栈指针SP是一个8位的寄存器,用于存放堆栈的栈顶地址,即指出栈顶在内部ROM中的位置。字节81H,无位地址。堆栈:是一种按“先进后出”或“后进先出”规律存放数据的片内RAM区域。它的一端是固定的,称为栈底,另一端是浮动的,称为栈顶设置与操作:原则上,可把堆栈区安排在片内RAM的低128B的任何区域但惯上,CPU工作时至少有一组工作寄存器,所以8051复位后,SP初值为07H,当第一个数进栈时,SP加一指向08H单元。为了合理使用内部RAM,堆栈一般不设在工作寄存器区和位寻址区,通常设在内部RAM30H-7FH地址空间内,即设在便签区。可用数据传送指令给SP赋初值进行设置。如:MOVSP,#70H堆栈有压栈和弹栈两种操作,分别用指令PUSH和POP完成。35H例:MOVA,#35H;A(SP) +1, (SP)PUSHA;SP作用:堆栈是为子程序调用和中断操作而设立的,其具体功能为保护断点和保护现场。此外,利用堆栈还可方便地进行数据交换(堆栈的妙用见备注)返回
堆栈指针SP 是一个8位的寄存器,用于存放堆栈的栈顶地址,即指出栈顶在内部ROM中 的位置。字节81H,无位地址。 堆栈:是一种按“先进后出”或“后进先出”规律存放数据的片内RAM区域。它 的一端是固定的,称为栈底,另一端是浮动的,称为栈顶。 设置与操作:原则上,可把堆栈区安排在片内RAM的低128B的任何区域。 但习惯上,CPU工作时至少有一组工作寄存器,所以8051复位后,SP初值为 07H,当第一个数进栈时,SP加一指向08H单元。为了合理使用内部RAM, 堆栈一般不设在工作寄存器区和位寻址区,通常设在内部RAM30H~7FH地 址空间内,即设在便签区。可用数据传送指令给SP赋初值进行设置。如: MOV SP,#70H 堆栈有压栈和弹栈两种操作,分别用指令PUSH和POP完成。 例:MOV A,#35H ;A 35H PUSH A ;SP (SP)+1,(SP) A 作用:堆栈是为子程序调用和中断操作而设立的,其具体功能为保护断点和 保护现场。此外,利用堆栈还可方便地进行数据交换(堆栈的妙用见备注)。 返回