为什么INDF不把它的赋值传递给FSR?

问题描述 投票:0回答:1

我试图了解间接寻址的工作原理。从PIC16F877A的数据表中,它在提到INDF时说:"该位置的寻址使用FSR的内容来寻址数据存储器(不是物理寄存器)"。所以我尝试了一个超基本的例子。

movlw   D'26' 
movwf   FSR 
movf    INDF, W 

然而,当我调试时,传入FSR的值是26,如预期的那样,但传入W的INDF值是0而不是26。为什么会这样?

ide logic pic mplab
1个回答
3
投票

INDF 读取数据存储器提供的地址 FSR. 所以你的代码读作 RCREG 登记地址 0x1A (D'26'):

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

你必须选择你要读取的银行,用 "D "26'. RP0RP1 位,请查看数据表,这取决于控制器。

© www.soinside.com 2019 - 2024. All rights reserved.