not much on today so i tried a few options with pic16f877 and 16f1825 with no other complications code wise
resultant code sizes are commented
Code:array var word[2] ADRESLO VAR BYTE inx var byte ADRESHi VAR BYTE ;METHOD 0 word_temp var word ;METHODS 2 AND 3 array_asbyte var byte ext @array_asbyte=_array ;ALL METHODS EXCEPT 0 , 1 i var byte i=0 ;METHOD 4 @ MOVE?CW _array , FSR0L ; PIC16 ENH CORE ;METHOD 5 '@ MOVE?CW _array , FSR ; PIC16 SHITTY OLD CHIP for inx=0 to 3 ;1 FOR METHOD 0 ; 36 WORDS ' word_temp.byte0=adreslo ;METHOD 0 ' word_temp.byte1=adreshi ' array[inx]=word_temp ' array[inx]=(adreshi<<8)| adreslo ;METHOD 1 ; 52 WORDS ' if !i&1 then ;METHOD 2 ; 60 WORDS ' array_asbyte[i]=ADRESLO ' else ' array_asbyte[i]=ADRESHi ' endif ' i=1+1 ' array_asbyte[i]=ADRESLO ;METHOD 3 ; 34 WORDS ' i=1+1 ' array_asbyte[i]=ADRESHi ' i=1+1 asm ;METHOD 4 PIC16 ENH CORE; 23 WORDS MOVE?BA _ADRESLO MOVWI FSR0++ MOVE?BA _ADRESHi MOVWI FSR0++ ENDASM 'asm ;METHOD 5 PIC16 SHITTY OLD CHIP; 29 WORDS ' MOVE?BA _ADRESLO ' MOVWF INDF ' INCF FSR,F ' MOVE?BA _ADRESHi ' MOVWF INDF ' INCF FSR,F 'ENDASM next stop




Bookmarks