pic16c712/716
ds41106a-页 20
初步的
1999 微芯 技术 公司
2.5 间接的 寻址, indf 和 fsr
寄存器
这 indf 寄存器 是 不 一个 物理的 寄存器. 地址-
ing indf 的确 地址 这 寄存器 谁的
地址 是 包含 在 这 fsr 寄存器 (fsr 是 一个
pointer
). 这个 是 间接的 寻址.
例子 2-1: 间接的 寻址
• 寄存器 文件 05 包含 这 值 10h
• 寄存器 文件 06 包含 这 值 0ah
• 加载 这 值 05 在 这 fsr 寄存器
• 一个 读 的 这 indf 寄存器 将 返回 这 值 的
10h
• increment 这 值 的 这 fsr 寄存器 用 一个
(fsr = 06)
• 一个 读 的 这 indr 寄存器 now 将 返回 这
值 的 0ah.
读 indf 它自己 indirectly (fsr = 0) 将 生产
00h. writing 至 这 indf 寄存器 indirectly 结果 在 一个
非-运作 (虽然 状态 位 将 是 影响).
一个 简单的 程序 至 clear 内存 locations 20h-2fh
使用 间接的 寻址 是 显示 在 例子 2-2.
例子 2-2: 如何 至 clear 内存
使用 间接的
寻址
movlw 0x20 ;initialize pointer
movwf fsr ; 至 内存
next clrf indf ;clear indf 寄存器
incf fsr ;inc pointer
btfss fsr,4 ;所有 完毕?
goto next ;非, clear next
CONTINUE
: ;yes, continue
一个 有效的 9-位 地址 是 得到 用 concatenating
这 8-位 fsr 寄存器 和 这 irp 位 (状态<7>), 作
显示 在 图示 2-10. 不管怎样, irp 是 不 使用 在 这
pic16c712/716.
图示 2-10: 直接/间接的 寻址
便条 1:
为 寄存器 文件 编排 detail 看 图示 2-3.
2:
维持 clear 为 upward 兼容性 和 future 产品.
3:
不 执行.
数据
记忆
(1)
间接的 寻址直接 寻址
bank 选择 location 选择
rp1:rp0 6
0
从 opcode
IRP fsr 寄存器
7
0
bank 选择
location 选择
00 01 10 11
bank 0 bank 1 bank 2 bank 3
FFh
80h
7Fh
00h
17Fh
100h
1FFh
180h
(3) (3)
(2)
(2)