位置:首页 > IC型号导航 > 首字符A型号页 > 首字符A的型号第1599页 > ATMEGA329V-16AI > ATMEGA329V-16AI PDF资料 > ATMEGA329V-16AI PDF资料4第13页

ATmega329/3290/649/6490
X寄存器, Y寄存器,并
Z寄存器
该寄存器R26..R31有一些额外的功能,其一般用途的使用。
这些寄存器是16位地址指针的数据空间的间接寻址。
三个间接地址寄存器X, Y和Z被定义为在图6中描述。
图6 。
的X,Y和Z寄存器
15
X -寄存器
7
R27 ( 0x1B )
XH
0
7
R26 ( 0x1A的)
XL
0
0
15
Y寄存器
7
R29 ( 0x1D )
15
Z寄存器
7
R31 ( 0x1F的)
YH
0
7
R28 ( 0x1C处)
ZH
0
7
R30 ( 0X1E )
YL
0
0
ZL
0
0
在不同的寻址模式中,这些地址寄存器可以实现固定偏移
位置,自动加一和自动减一(见指令集
有关详细信息,参考) 。
堆栈指针
堆栈主要用于存储临时数据,用于存储局部变量和
中断和调用子程序的返回地址。堆栈指针
总是指向堆栈的顶部。需要注意的是该协议栈实现成长
从更高的存储位置,以降低内存位置。这意味着,一个堆栈
PUSH指令减少堆栈指针。
堆栈指针指向数据SRAM堆栈区所在的子程序和接口
中断堆栈。数据SRAM堆栈空间必须由定义
之前的任何子程序调用的程序执行和使能中断。堆栈
指针必须被设置为指向上述地址0x60 。堆栈指针减一
当数据被压入与PUSH指令的堆栈,并且它是通过减
2时,返回地址被压入堆栈子程序调用或中断。
堆栈指针加一,当数据从栈中弹出的
POP指令,并且它是由两个递增当数据从与堆栈中弹出。
从子程序返回RET或RETI中断返回。
AVR的堆栈指针被实现为两个8位寄存器中的I / O空间。该num-
实际使用的比特误码率是依赖于实现。注意,在一些数据空间
AVR架构的实现是如此之小,只有SPL就足够了。在这
情况下, SPH寄存器不会出现。
位
0x3E的( 0x5E )
0x3D之间( 0x5D )
15
SP15
SP7
7
读/写
读/写
读/写
初始值
0
0
14
SP14
SP6
6
读/写
读/写
0
0
13
SP13
SP5
5
读/写
读/写
0
0
12
SP12
SP4
4
读/写
读/写
0
0
11
SP11
SP3
3
读/写
读/写
0
0
10
SP10
SP2
2
读/写
读/写
0
0
9
SP9
SP1
1
读/写
读/写
0
0
8
SP8
SP0
0
读/写
读/写
0
0
SPH
SPL
13
2552H–AVR–11/06