ht46r22/ht46c22
rev. 1.10 8 October 2, 2002
堆栈 寄存器
堆栈
这个 是 一个 特定的 部分 的 这 记忆 这个 是 使用 至
保存 这 内容 的 这 程序 计数器 (pc) 仅有的. 这
堆栈 是 有组织的 在 6 水平 和 是 neither 部分 的 这
数据 也不 部分 的 这 程序 空间, 和 是 neither 读
-
能 也不 writeable. 这 使活动 水平的 是 indexed 用 这
堆栈 pointer (sp) 和 是 neither readable 也不 writeable.
在 一个 子例程 call 或者 中断 承认, 这
内容 的 这 程序 计数器 是 pushed 面向 这
堆栈. 在 这 终止 的 一个 子例程 或者 一个 中断 routine,
signaled 用 一个 返回 操作指南 (ret 或者 reti), 这 pro
-
gram 计数器 是 restored 至 它的 previous 值 从 这
堆栈. 之后 一个 碎片 重置, 这 SP 将 要点 至 这 顶 的 这
堆栈.
如果 这 堆栈 是 全部 和 一个 非-masked 中断 takes
放置, 这 中断 要求 标记 将 是 recorded 但是 这
承认 将 是 inhibited. 当 这 堆栈
pointer 是 decremented (用 RET 或者 reti), 这 中断
将 是 serviced. 这个 特性 阻止 堆栈 overflow al
-
lowing 这 programmer 至 使用 这 结构 更多 容易地.
在 一个 类似的 情况, 如果 这 堆栈 是 全部 和 一个
CALL
是 sub
-
sequently executed, 堆栈 overflow occurs 和 这 第一
entry 将 是 lost (仅有的 这 大多数 recent 6 返回 ad
-
dresses 是 贮存).
数据 记忆
内存
这 数据 记忆 是 设计 和 92
8 位. 这 数据
记忆 是 分隔 在 二 函数的 groups: 特定的
函数 寄存器 和 一般 目的 数据 记忆
(64
8). 大多数 是 读/写, 但是 一些 是 读 仅有的.
这 特定的 函数 寄存器 包含 这 间接的 ad-
dressing 寄存器 (00h), 计时器/事件 计数器 寄存器
(tmr;0dh), 计时器/事件 计数器 控制 寄存器
(tmrc;0eh), 程序 计数器 更小的-顺序 字节 regis
-
ter (pcl;06h), 记忆 pointer 寄存器 (mp;01h), 交流
-
cumulator (acc;05h), 表格 pointer (tblp;07h), 表格
高等级的-顺序 字节 寄存器 (tblh;08h), 状态 寄存器
(状态;0ah), 中断 控制 寄存器 0 (intc0;
0bh), PWM 数据 寄存器 (pwm;1ah), 这 I
2
C 总线
从动装置 地址 寄存器 (hadr;20h), 这 I
2
C 总线 con
-
trol 寄存器 (hcr;21h), 这 I
2
C 总线 状态 寄存器
(hsr;22h), 这 I
2
C 总线 数据 寄存器 (hdr;23h), 这
一个/d 结果 更小的-顺序 字节 寄存器 (adrl;24h), 这
一个/d 结果 高等级的-顺序 字节 寄存器 (adrh;25h), 这
一个/d 控制 寄存器 (adcr;26h), 这 一个/d 时钟 设置
寄存器 (acsr;27h), i/o 寄存器 (pa;12h, 铅;14h,
pc;16h, pd;18h) 和 i/o 控制 寄存器 (pac;13h,
pbc;15h, pcc;17h, pdc;19h). 这 remaining 空间
在之前 这 40H 是 保留 为 future expanded 用法
和 读 这些 locations 将 得到
00H
. 这 一般
目的 数据 记忆, addressed 从 40H 至 7fh, 是
使用 为 数据 和 控制 信息 下面 操作指南
commands.
所有 的 这 数据 记忆 areas 能 handle arithmetic,
逻辑, increment, decrement 和 rotate 行动 di
-
rectly. 除了 为 一些 专心致志的 位, 各自 位 在 这
数据 记忆 能 是 设置 和 重置 用
设置 [m].i
和
CLR [m].i
. 它们 是 也 indirectly accessible 通过
记忆 pointer 寄存器 (mp;01h).
内存 mapping