PIC16C505
ds40192b-页 18
初步的
1998 微芯 技术 公司
4.8 间接的 数据 寻址; indf 和
fsr 寄存器
这 indf 寄存器 是 不 一个 物理的 寄存器.
寻址 indf 的确 地址 这 寄存器
谁的 地址 是 包含 在 这 fsr 寄存器 (FSR
是 一个
pointer
). 这个 是 间接的 寻址.
例子 4-1: 间接的 寻址
• 寄存器 file 07 包含 这 值 10h
• 寄存器 file 08 包含 这 值 0ah
• 加载 这 值 07 在 这 fsr 寄存器
• 一个 读 的 这 indf 寄存器 将 返回 这 值
的 10h
• increment 这 值 的 这 fsr 寄存器 用 一个
(fsr = 08)
• 一个 读 的 这 indr 寄存器 now 将 返回 这
值 的 0ah.
读 indf 它自己 indirectly (fsr = 0) 将 生产
00h. writing 至 这 indf 寄存器 indirectly 结果 在 一个
非-operation (虽然 状态 位 将 是 影响).
一个 简单的 程序 至 clear 内存 locations 10h-1fh
使用 间接的 寻址 是 显示 在 例子 4-2.
例子 4-2: 如何 至 clear 内存
使用 间接的
寻址
movlw 0x10 ;initialize pointer
movwf FSR ; 至 内存
NEXT clrf INDF ;clear indf 寄存器
incf fsr,f ;inc pointer
btfsc fsr,4 ;所有 完毕?
goto NEXT ;非, clear next
CONTINUE
: ;yes, continue
:
这 fsr 是 一个 5-位 宽 寄存器. 它 是 使用 在
conjunction 和 这 indf 寄存器 至 indirectly 地址
这 数据 记忆 范围.
这 fsr<4:0> 位 是 使用 至 选择 数据 记忆
地址 00h 至 1fh.
这 设备 使用 fsr<6:5> 至 选择 在 banks
0:3.
图示 4-7: 直接/间接的 寻址
便条 1:
为 寄存器 编排 detail 看 部分 4.2.
直接 寻址
(fsr)
6 5 4 (opcode) 0
bank 选择 location 选择
00 01 10 11
00h
0Fh
10h
数据
记忆(1)
1fh 3fh 5fh 7fh
bank 0 bank 1 bank 2 bank 3
地址
编排 后面的 至
地址
在 bank 0.
间接的 寻址
6 5 4 (fsr) 0
bank location 选择