PIC菜鸟求高手赐教:关于一个间接寻址清零的小程序

2020-02-09 11:36发布

要求:用间接寻址方式清除RAM地址20h~2Fh单元寄存器内容的实例。
网上教程里程序如下:
    MOVLW  0x20  ;20h→w,对指向RAM单元的指针初始化
     MOVWF  FSR   ;20h→FSR,FSR指向RAM
LOOP  CLRF     INDF ;清除INDF,即清除FSR内容所指向的单元20h→2Fh
    INCF   FSR   ;(指针)FSR内容加1
    BTFSS    FSR,4;判别(指令)FSR的D3位,若为0执行下条循环指令;若为1间跳执行。
    GOTO    LOOP;跳转到LOOP(循环)
OK  …    ;已完成功能,继续执行程序

疑惑:BTFSS    FSR,4 ;这一句的4应该指D3还是D4?如果是D3,那D3变为1时,FSR指向的地址是00101000B(28H)。程序只完成了20H---27H的清零。
如果是D4,那就是说FSR递增到30H时跳出循环,清零只清到2FH。那就只是注释写错了而已。
望高手赐教。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
maxking
1楼-- · 2020-02-09 17:21
是指FSR的第四位,0-7,也就是第五个。清20H-2FH这个范围。
shootboy2000
2楼-- · 2020-02-09 19:53
程序没错,注释错了,是不是这个意思啊?

一周热门 更多>