HT82K96E
rev. 1.70 8 April 22, 2004
在 一个 子例程 call 或者 中断 acknowledge 信号, 这
内容 的 这 程序 计数器 是 pushed 面向 这
堆栈. 在 这 终止 的 一个 子例程 或者 一个 中断 routine,
signaled 用 一个 返回 操作指南 (ret 或者 reti), 这 pro
-
gram 计数器 是 restored 至 它的 previous 值 从 这
堆栈. 之后 一个 碎片 重置, 这 SP 将 要点 至 这 顶 的 这
堆栈.
如果 这 堆栈 是 全部 和 一个 非-masked 中断 takes
放置, 这 中断 要求 标记 将 是 recorded 但是 这
acknowledge 信号 将 是 inhibited. 当 这 堆栈
pointer 是 decremented (用 RET 或者 reti), 这 中断
将 是 serviced. 这个 特性 阻止 堆栈 overflow al
-
lowing 这 programmer 至 使用 这 结构 更多 容易地.
在 一个 类似的 情况, 如果 这 堆栈 是 全部 和 一个
CALL
是 sub
-
sequently executed, 堆栈 overflow occurs 和 这 第一
entry 将 是 lost (仅有的 这 大多数 recent 8 返回 ad
-
dresses 是 贮存).
数据 记忆
内存 为 Bank 0
这 数据 记忆 是 设计 和 190
8 位. 这
数据 记忆 是 分隔 在 二 函数的 groups: spe
-
cial 函数 寄存器 和 一般 目的 数据 mem
-
ory (160
8). 大多数 是 读/写, 但是 一些 是 读
仅有的.
这 特定的 函数 寄存器 包含 这 间接的 ad
-
dressing 寄存器 (r0;00h, r1;02h), Bank 寄存器
(bp, 04h), 计时器/事件 计数器 0 (
TMR0
;0dh),
计时器/事件 计数器 0 控制 寄存器 (tmr0c;0eh),
计时器/事件 计数器 1 高等级的 顺序 字节 寄存器
(tmr1h;0fh), 计时器/事件 计数器 1 更小的 顺序 字节
寄存器 (tmr1l;10h), 计时器/事件 计数器 1 控制
寄存器 (tmr1c;11h), 程序 计数器 更小的-顺序
字节 寄存器 (pcl;06h), 记忆 pointer 寄存器
(mp0;01h, mp1;03h), accumulator (acc;05h), 表格
pointer (tblp;07h), 表格 高等级的-顺序 字节 寄存器
(tblh;08h), 状态 寄存器 (状态;0ah), 中断
控制 寄存器 (intc;0bh), 看门狗 计时器 选项
设置 寄存器 (wdts;09h), i/o 寄存器 (pa;12h,
铅;14h, pc;16h, pd;18h), i/o 控制 寄存器
(pac;13h, pbc;15h, pcc;17h, pdc;19h). usb/ps2
状态 和 控制 寄存器 (usc;1ah), USB endpoint
中断 状态 寄存器 (usr;1bh), 系统 时钟 con
-
trol 寄存器 (scc;1ch). 一个/d 转换器 状态 和 con
-
trol 寄存器 (adsc;1dh) 和 一个/d 转换器 结果
寄存器 (adr;1eh). 这 remaining 空间 在之前 这
20H 是 保留 为 future expanded 用法 和 读
这些 locations 将 得到
00H
. 这 一般 目的
数据 记忆, addressed 从 20H 至 bfh, 是 使用 为
数据 和 控制 信息 下面 操作指南 com
-
mands.
所有 的 这 数据 记忆 areas 能 handle arithmetic,
逻辑, increment, decrement 和 rotate 行动 di
-
rectly. 除了 为 一些 专心致志的 位, 各自 位 在 这
数据 记忆 能 是 设置 和 重置 用
设置 [m].i
和
CLR [m].i
. 它们 是 也 indirectly accessible 通过
记忆 pointer 寄存器 (mp0 或者 mp1).
Bank 0 内存 Mapping