atmega161(l)
7
这 alu 支持 arithmetic 和 逻辑 功能 在 寄存器 或者 在 一个 常量 和 一个 寄存器. 单独的 寄存器
行动 是 也 executed 在 这 alu. 图示 4 显示 这 atmega161 avr
risc 微控制器 architecture.
在 增加 至 这 寄存器 运作, 这 常规的 记忆 寻址 模式 能 是 使用 在 这 寄存器 文件 作 好.
这个 是 使能 用 这 事实 那 这 寄存器 文件 是 assigned 这 32 lowermost 数据 空间 地址 ($00 - $1f), 准许
它们 至 是 accessed 作 though 它们 是 ordinary 记忆 locations.
这 i/o 记忆 空间 包含 64 地址 为 cpu 附带的 功能 作 控制 寄存器, 计时器/counters, 和
其它 i/o 功能. 这 i/o 记忆 能 是 accessed 直接地, 或者 作 这 数据 空间 locations 下列的 那些 的 这 regis-
ter 文件, $20 - $5f.
这 avr
使用 一个 harvard architecture concept
–
和 独立的 memories 和 buses 为 程序 和 数据. 这 程序
记忆 是 executed 和 一个 二 平台 pipeline. 当 一个 操作指南 是 正在 executed, 这 next 操作指南 是 前-fetched
从 这 程序 记忆. 这个 concept 使能 说明 至 是 executed 在 每 时钟 循环. 这 程序 记忆 是
自-可编程序的 flash 记忆.
和 这 jump 和 call 说明, 这 全部的 8k 文字 地址 空间 是 直接地 accessed. 大多数 avr
说明 有 一个
单独的 16-位 文字 format. 每 程序 记忆 地址 包含 一个 16- 或者 32-位 instruction.
在 中断 和 子例程 calls, 这 返回 地址 程序 计数器 (pc) 是 贮存 在 这 堆栈. 这 堆栈 是 effec-
tively allocated 在 这 一般 数据 sram, 和 consequently 这 堆栈 大小 是 仅有的 限制 用 这 总的 sram 大小 和 这
用法 的 这 sram. 所有 用户 programs 必须 initialize 这 sp (堆栈 pointer) 在 这 重置 routine (在之前 subroutines 或者
中断 是 executed). 这 16-位 堆栈 pointer 是 读/写 accessible 在 这 i/o space.
这 1k 字节 数据 sram 能 是 容易地 accessed 通过 这 five 不同的 寻址 模式 supported 在 这 avr
architecture.
这 记忆 spaces 在 这 avr
architecture 是 所有 直线的 和 regular 记忆 maps.