e.g. without symbolic references 205 movfw $20 206 addlw 1 207 movfw $20 208 sublw 30 209 btfsc 3,2 20A goto $20E 20B xorlw $FF 20C addlw 1 20D movwf $20 20E decfsz $21 20F goto $205 300 goto $306 301 goto $401Removing the xorlw instruction at 20B would cause the goto at 20A to refer to the wrong destination instruction and so it would have to be modified to refer to 20D since all instructions from 20B are moved up. Note also how forward references that occure after the change are affected and must be updated.e.g. with xorlw at 20B removed 205 movfw $20 206 addlw 1 207 movfw $20 208 sublw 30 209 btfsc 3,2 20A goto $20D 20B addlw 1 20C movwf $20 20D decfsz $21 20E goto $205 20F goto $305 300 goto $400e.g. the same code with symbolic references lab1 movfw acc addlw 1 movfw acc sublw 30 btfsc STATUS,Z goto lab3 xorlw $FF addlw 1 movwf acc lab3 decfsz cnt goto lab1 goto lab_A goto lab_BRemoving the xorlw instruction here does not cause any problems with the rest of the program since the assembler recalculates all the address of the symbolic labels. Here the only change necessary was the removal of the one xorlw instruction.e.g. with symbolic references and the xorlw instruction removed lab1 movfw acc addlw 1 movfw acc sublw 30 btfsc STATUS,Z goto lab3 addlw 1 movwf acc lab3 decfsz cnt goto lab1 goto lab_A goto lab_B