pic12f635/pic16f636/639
ds41232b-页 26
初步的
©
2005 微芯 技术 公司
2.3 pcl 和 pclath
这 程序 计数器 (pc) 是 13 位 宽. 这 低 字节
comes 从 这 pcl 寄存器, 这个 是 一个 readable 和
writable 寄存器. 这 高 字节 (pc<12:8>) 是 不
直接地 readable 或者 writable 和 comes 从 pclath.
在 任何 重置, 这 pc 是 cleared. 图示 2-5 显示 这
二 situations 为 这 加载 的 这 pc. 这 upper
例子 在 图示 2-5 显示 如何 这 pc 是 承载 在 一个
写 至 pcl (pclath<4:0>
→
pch). 这 更小的
例子 在 图示 2-5 显示 如何 这 pc 是 承载
在 一个
CALL
或者
GOTO
操作指南 (pclath<4:3>
→
pch).
图示 2-5: 加载 的 pc 在
不同的 situations
2.3.1 计算
GOTO
一个 计算
GOTO
是 accomplished 用 adding 一个 补偿
至 这 程序 计数器 (
addwf pcl
). 当
performing 一个 表格 读 使用 一个 计算
GOTO
方法, 小心 应当 是 exercised 如果 这 表格 location
crosses 一个 pcl 记忆 boundary (各自 256-字节
块). 谈及 至 这 应用 便条
an556,
“implementing 一个 表格 read”
(ds00556).
2.3.2 堆栈
这 pic12f635/pic16f636/639 家族 有 一个 8-
水平的 x 13-位 宽 硬件 堆栈 (看 图示 2-1).
这 堆栈 空间 是 不 部分 的 也 程序 或者 数据
空间 和 这 堆栈 pointer 是 不 readable 或者 writable.
这 pc 是 pushed 面向 这 堆栈 当 一个
CALL
操作指南 是 executed 或者 一个 中断 导致 一个 branch.
这 堆栈 是 poped 在 这 事件 的 一个
返回
,
RETLW
或者 一个
RETFIE
操作指南 执行. pclath 是 不
影响 用 一个 推 或者 流行音乐 运作.
这 堆栈 运作 作 一个 圆形的 缓存区. 这个 意思 那
之后 这 堆栈 有 被 pushed 第八 时间, 这 ninth
推 overwrites 这 值 那 是 贮存 从 这 第一
推. 这 tenth 推 overwrites 这 第二 推 (和
所以 在).
PC
12 8 7 0
5
pclath<4:0>
PCLATH
操作指南 和
alu 结果
GOTO
,
CALL
opcode<10:0>
8
PC
12 11 10 0
11
pclath<4:3>
PCH PCL
87
2
PCLATH
PCH PCL
pcl 作
Destination
便条 1:
那里 是 非 状态 位 至 表明 堆栈
overflow 或者 堆栈 underflow 情况.
2:
那里 是 非 说明/mnemonics
called 推 或者 流行音乐. 这些 是 actions
那 出现 从 这 执行 的 这
CALL
,
返回
,
RETLW
和
RETFIE
说明
或者 这 vectoring 至 一个 中断 地址.