
执行操作,并将结果存回寄存器文件 - 在一个
时钟周期。
六的32个寄存器可以用作3个16位的间接寻址寄存器指针
数据空间寻址 - 实现高效的地址运算。一项所述的这些
地址指针还可以用来作为地址指针为查找表中闪光亲
程序存储器。这些附加的功能寄存器即为16位的X, Y, Z寄存器,
在本节后面介绍。
ALU支持寄存器之间,或一个反面之间的算术和逻辑运算
常数和寄存器。单个寄存器操作也可以在ALU中执行的。后
算术运算,状态寄存器的内容更新,以反映有关信息
该操作的结果。
程序流程通过无条件的跳转指令和调用指令,
能够直接寻址整个地址空间。大多数指令单
16位字格式。每个程序存储器地址包含一个16位或32位的指令。
程序存储器空间分为两个区:引导程序区和
应用程序区。这两个区都有专门的锁定位以实现读和
读/写保护。 SPM指令写入到应用程序的闪存
部分必须位于引导程序区。
在中断和调用子程序时返回地址的程序计数器( PC)为
存储在堆栈。堆栈实际上分配到一般数据SRAM,
因此其深度仅受限于总的SRAM大小和使用
SRAM 。所有的用户程序必须初始化复位程序的SP (子程序前
或中断正在执行的) 。堆栈指针( SP)的读/写,在我抵达/ O
空间。数据SRAM可以很容易地通过5种不同的寻址访问
在AVR架构支持的模式。
在AVR架构中的存储空间都是线性的内存映射。
一个灵活的中断模块具有在I / O空间的控制寄存器,与另外的
全局中断允许位的状态寄存器。所有中断都有独立的中断
向量的中断向量表。各个中断的优先级按照其
中断向量的位置。较低的中断向量地址,优先级越高。
在I / O存储器空间包含64个地址,作为CPU外设的控制
寄存器, SPI ,以及其他I / O功能。在I / O存储器可以直接访问,或作为
数据空间位置下面这些寄存器文件,地址0x20 - 0x5F的。此外,
0xFF的SRAM中,其中只有 - 了ATmega48 / 88/168已经扩展I / O空间0x60
在ST / STS / STD和LD / LDS / LDD指令都可以使用。
ALU - 算术逻辑
单位
高性能的AVR ALU与所有32个一般直接连接
通用工作寄存器。在一个单一的时钟周期之间的算术运算
通用寄存器或寄存器与立即数之间执行。该
ALU操作分为三个主要类别 - 算术,逻辑和位
系统蒸发散。该架构的一些实现还提供了强大的乘数
同时支持有符号/无符号的乘法和小数格式。请参阅“指令
化设置“部分进行了详细的描述。
8
ATmega48/88/168
2545D–AVR–07/04