8
atmega8(l)
2486m–avr–12/03
六 的 这 32 寄存器 能 是 使用 作 三 16-位 间接的 地址 寄存器 pointers 为
数据 空间 寻址 – enabling 效率高的 地址 calculations. 一个 的 这 这些
地址 pointers 能 也 是 使用 作 一个 地址 pointer 为 看 向上 tables 在 flash pro-
gram 记忆. 这些 增加 函数 寄存器 是 这 16-位 x-, y-, 和 z-register,
描述 后来的 在 这个 部分.
这 alu 支持 arithmetic 和 逻辑 行动 在 寄存器 或者 在 一个 con-
stant 和 一个 寄存器. 单独的 寄存器 行动 能 也 是 executed 在 这 alu. 之后
一个 arithmetic 运作, 这 状态 寄存器 是 updated 至 反映 信息 关于 这
结果 的 这 运作.
这 程序 流动 是 提供 用 conditional 和 unconditional jump 和 call instruc-
tions, 能 至 直接地 地址 这 全部的 地址 空间. 大多数 avr 说明 有 一个
单独的 16-位 文字 format. 每 程序 memory 地址 包含 一个 16- 或者 32-位
操作指南.
程序 flash 记忆 空间 是 分隔 在 二 sections, 这 激励 程序 部分 和
这 应用 程序 部分. 两个都 sections 有 专心致志的 锁 位 为 写 和
读/写 保护. 这 spm 操作指南 那 写 在 这 应用 flash 记忆
部分 必须 reside 在 这 激励 程序 部分.
在 中断 和 子例程 calls, the 返回 地址 程序 计数器 (pc) 是
贮存 在 这 堆栈. 这 堆栈 是 effectively allocated 在 这 一般 数据 sram, 和
consequently 这 堆栈 大小 是 仅有的 限制 用 这 总的 sram 大小 和 这 用法 的 这
sram. 所有 用户 programs 必须 initialize the sp 在 这 重置 routine (在之前 subroutines
或者 中断 是 executed). 这 堆栈 pointer sp 是 读/写 accessible 在 这 i/o
空间. 这 数据 sram 能 容易地 是 accessed 通过 这 five 不同的 寻址
模式 supported 在 这 avr architecture.
这 记忆 spaces 在 这 avr
architecture 是 所有 直线的 和 regular 记忆 maps.
一个 有伸缩性的 中断 单元 有 它的 控制 寄存器 在 这 i/o 空间 和 一个 额外的
global 中断 使能 位 在 这 状态 寄存器. 所有 中断 有 一个 独立的 中断
vector 在 这 中断 vector 表格. 这 中断 有 priority 在 一致 和 它们的
中断 vector 位置. 这 更小的 这 中断 vector 地址, 这 高等级的 这 priority.
这 i/o 记忆 空间 包含 64 地址 为 cpu 附带的 功能 作 控制
寄存器, spi, 和 其它 i/o 功能. 这 i/o 记忆 能 是 accessed directly, 或者 作
这 数据 空间 locations 下列的 那些 的 这 寄存器 文件, 0x20 - 0x5f.