2004 微芯 技术 公司
初步的
ds41236a-页 25
pic12f508/509/16f505
4.7 程序 计数器
作 一个 程序 操作指南 是 executed, 这 程序
计数器 (pc) 将 包含 这 地址 的 这 next
程序 操作指南 至 是 executed. 这 pc 值 是
增加 用 一个 每 操作指南 循环, 除非 一个
操作指南 改变 这 pc.
为 一个
GOTO
操作指南, 位 8:0 的 这 pc 是 提供
用 这
GOTO
操作指南 文字. 这 程序 计数器
(pcl) 是 编排 至 pc<7:0>. 位 5 的 这 状态
寄存器 提供 页 信息 至 位 9 的 这 pc
(图示 4-6).
为 一个
CALL
操作指南, 或者 任何 操作指南 在哪里 这
pcl 是 这 destination, 位 7:0 的 这 pc 又一次 是
提供 用 这 操作指南 文字. 不管怎样, pc<8>
做 不 来到 从 这 操作指南 文字, 但是 是 总是
cleared (图示 4-6).
说明 在哪里 这 pcl 是 这 destination, 或者 modify
pcl 说明, 包含
movwf pc, addwf pc
和
bsf pc,5.
图示 4-6: 加载 的 pc
branch 说明
4.7.1 影响 的 重置
这 pc 是 设置 在之上 一个 重置, 这个 意思 那 这 pc
地址 这 last location 在 这 last 页 (i.e., 这
振荡器 校准 操作指南). 之后 executing
movlw xx
, 这 pc 将 滚动 在 至 location 00h 和
begin executing 用户 代号.
这 状态 寄存器 页 preselect 位 是 cleared 在之上
一个 重置, 这个 意思 那 页 0 是 前-选择.
因此, 在之上 一个 重置, 一个
GOTO
操作指南 将
automatically 导致 这 程序 至 jump 至 页 0 直到
这 值 的 这 页 位 是 改变.
4.8 堆栈
这 pic12f508/509/16f505 设备 有 一个 2-深的,
12-位 宽 硬件 推/流行音乐 堆栈.
一个
CALL
操作指南 将 推 这 电流 值 的 堆栈 1
在 堆栈 2 和 然后 推 这 电流 pc 值, incre-
mented 用 一个, 在 堆栈 水平的 1. 如果 更多 比 二
sequential
CALL
s 是 executed, 仅有的 这 大多数 recent 二
返回 地址 是 贮存.
一个
RETLW
操作指南 将 流行音乐 这 内容 的 堆栈
水平的 1 在 这 pc 和 然后 copy 堆栈 水平的 2
内容 在 堆栈 水平的 1. 如果 更多 比 二 sequential
RETLW
s 是 executed, 这 堆栈 将 是 filled 和 这
地址 先前 贮存 在 堆栈 水平的 2. 便条 那
这 w 寄存器 将 是 承载 和 这 literal 值
指定 在 这 操作指南. 这个 是 特别 有用的 为
这 implementation 的 数据 看-向上 tables 在里面 这
程序 记忆.
便条:
因为 pc<8> 是 cleared 在 这
CALL
操作指南 或者 任何 modify pcl 操作指南,
所有 子例程 calls 或者 计算 jumps 是
限制 至 这 第一 256 locations 的 任何
程序 记忆 页 (512 words 长).
PA0
Stat美国
PC
87 0
PCL
910
操作指南 文字
70
GOTO
操作指南
CALL
或者 modify pcl 操作指南
11
PA0
Stat美国
PC
87 0
PCL
910
操作指南 文字
70
11
重置 至 ‘
0
’
便条 1:
那里 是 非 状态 位 至 表明 堆栈
overflows 或者 堆栈 underflow 情况.
2:
那里 是 非 操作指南 mnemonics
called 推 或者 流行音乐. 这些 是 actions
那 出现 从 这 执行 的 这
CALL
和
RETLW
说明.