Ok F просто означает ячейку памяти. обрабатывать «FSR» как переменную, указатель на ячейку памяти.
movlw 0x20 // put's the number 0x20 into the W register
movwf FSR // put's condense of W register in memory Loc "FSR"
loop clrf INDF // clear location pointed at by the value in W register.
incf FSR, F // increment the content of the FSR
btfsc FSR, 7 // test bit7 in the FSR and skip if set (exiting the loop)
goto loop // go back to loop. and do next memory location.
Теперь проблема, которую я вижу в этом, заключается в том, что он завершит первый прогон при FSR = 0x20, поэтому бит 7 сброшен, поэтому он выходит из цикла. поэтому мне интересно, если btfsc должен быть btfss. тогда это будет цикл от 0x20 до 0xF0, что будет иметь больше смысла.