要求:用间接寻址方式清除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。那就只是注释写错了而已。
望高手赐教。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>