为什么INDF不将其分配的值传递给FSR

时间:2020-05-06 02:12:56

标签: assembly pic microchip mplab

我正在尝试了解间接寻址的工作原理。从PIC16F877A的数据手册中可以看出,在引用INDF时,“寻址该位置将使用FSR的内容来寻址数据存储器(而非物理寄存器)”。所以我尝试了一个超级基本的例子:

movlw   D'26' 
movwf   FSR 
movf    INDF, W 

但是,当我调试时,传递给FSR的值是预期的26,但是来自INDF传递给W的值是0而不是26。这是为什么?

1 个答案:

答案 0 :(得分:3)

INDF读取FSR提供的地址。因此,您的代码读取了地址RCREG(D'26')上的0x1A寄存器:

movlw   D'26' 
movwf   FSR 
movf    INDF, W   ;read the value in the physical address D'26'

您必须使用RP0RP1位选择要读取的存储区,并查看数据表,它取决于控制器。

相关问题