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