9
atmega8(l)
2486m–avr–12/03
arithmetic 逻辑 单位 –
ALU
这 高-效能 avr alu 运作 在 直接 连接 和 所有 这 32 一般
目的 working 寄存器. 在里面 一个 单独的 时钟 循环, arithmetic 行动 在
一般 目的 寄存器 或者 在 一个 寄存器 和 一个 立即的 是 executed. 这
alu 行动 是 分隔 在 三 主要的 categories – arithmetic, logical, 和 位-func-
tions. 一些 implementations 的 这 architecture 也 提供 一个 powerful 乘法器
支承的 两个都 signed/unsigned multiplication 和 fractional format. 看 这 “instruc-
tion set” 部分 为 一个 详细地 描述.
状态 寄存器
这 状态 寄存器 包含 信息 关于 这 结果 的 这 大多数 recently executed
arithmetic 操作指南. 这个 信息 能 是 使用 为 altering 程序 流动 在 顺序 至
执行 conditional 行动. 便条 那 这 状态 寄存器 是 updated 之后 所有 alu
行动, 作 指定 在 这 操作指南 设置 涉及. 这个 将 在 许多 具体情况
除去 这 需要 为 使用 这 专心致志的 对比 说明, 结果 在 faster 和
更多 紧凑的 代号.
这 状态 寄存器 是 不 automatically 贮存 当 进去 一个 中断 routine 和
restored 当 returning 从 一个 中断. 这个 必须 是 处理 用 软件.
这 avr 状态 寄存器 – sreg – 是 定义 作:
• 位 7 – i: global 中断 使能
这 global 中断 使能 位 必须 是 设置 为 这 中断 至 是 使能. 这 individ-
ual 中断 使能 控制 是 然后 执行 在 独立的 控制 寄存器. 如果 这 global
中断 使能 寄存器 是 cleared, 毫无 的 这 中断 是 使能 独立 的
这 单独的 中断 使能 settings. 这 i-位 是 cleared 用 硬件 之后 一个 中断
有 occurred, 和 是 设置 用 这 reti 操作指南 至 使能 subsequent 中断. 这 i-
位 能 也 是 设置 和 cleared 用 这 应用 和 这 sei 和 cli 说明, 作
描述 在 这 操作指南 设置 涉及.
• 位 6 – t: 位 copy 存储
这 位 copy 说明 bld (位 加载) 和 bst (位 store) 使用 这 t-bit 作 源 或者
destination 为 这 运作 位. 一个 位 从 一个 寄存器 在 这 寄存器 文件 能 是 copied
在 t 用 这 bst 操作指南, 和 一个 位 在 t 能 是 copied 在 一个 位 在 一个 寄存器 在 这
寄存器 文件 用 这 bld 操作指南.
• 位 5 – h: half carry 标记
这 half carry 标记 h indicates 一个 half carry 在 一些 arithmetic 行动. half carry 是
有用的 在 bcd arithmetic. 看 这 “instruction 设置 description” 为 详细地 信息.
• 位 4 – s: sign 位, s = n
⊕
V
这 s-位 是 总是 一个 独有的 或者 在 这 负的 标记 n 和 这 二’s comple-
ment overflow 标记 v. 看 这 “instruction 设置 description” 为 详细地 信息.
• 位 3 – v: 二’s complement overflow 标记
这 二’s complement overflow 标记 v 支持 二’s complement arithmetics. 看
这 “instruction 设置 description” 为 详细地 信息.
• 位 2 – n: 负的 标记
这 负的 标记 n indicates 一个 负的 结果 在 一个 arithmetic 或者 逻辑 运作. 看
这 “instruction 设置 description” 为 详细地 信息.
• 位 1 – z: 零 标记
位 7 6 5 4 3 2 1 0
I T H S V N Z C SREG
读/写 r/w r/w r/w r/w r/w r/w r/w r/w
最初的 值 0 0 0 0 0 0 0 0