pic汇编的几条语句

来源:百度知道 编辑:UC知道 时间:2024/05/27 04:47:47
Label_0011 XORWF FSR , W
CLRF INDF
INCF FSR , f
Label_000E XORWF FSR , W
BTFSS STATUS , Z
GOTO Label_0011
RETLW 0x00
请问这几条语句是什么意思啊?
我不是说每条语句是什么怎么操作的,我的意思是这几条语句表达一个什么含义或什么结果?

XORWF FSR , W :
用W寄存器和FSR寄存器异或,结果放W里面
CLRF INDF :
清零INDF单元
INCF FSR , f :
将FSR寄存器增加一,结果放在FSR寄存器里面
BTFSS STATUS , Z :如果STATUS寄存器的Z位单元位一,就跳过下一条指令
GOTO Label_0011 :跳转到Label_0011
RETLW 0x00 :子程序返回,将00给W作为返回的结果
Label_0011:是标号,也就是为子程序取的名字

这个是一个清RAM子程序,好的习惯一般在程序的最开始会有这么一段,用FSR和INDF配合使用,我曾经用MCV14A写过一段初始化RAM程序,贴上,以供参考。
clr_ram ;初始化RAM子程序
clrf indf
movlw 0x7f
andwf fsr,w
xorlw 0x7f
btfsc status,z ;到最后一单元7FH了吗?
retlw 0 ;到了,则返回(return也可以)
movlw 0x1f
andwf fsr,w
xorlw 0x1f
btfss status,z ;是否到下一页?
goto clr_ram_ret ;没到,刚直接到下一地址
movlw 0x10 ;到了,则加10H进下一页
addwf fsr,f
clr_ram_ret
incf fsr,f ;没到,则继续往下
goto clr_ram