UPDATE METHODS
	Code:
	array var word[2]inx var byte
                   ;UNCOMMENT FOR METHOD 8
ADRESHi VAR BYTE  ;BANK0  SYSTEM
ADRESLO VAR BYTE  ; BANK0   SYSTEM
;METHOD 0
word_temp  var word   
;METHODS 2 AND 3
array_asbyte var byte ext
@array_asbyte=_array
;ALL METHODS EXCEPT 0 , 1 ,6 ,7 ,8
'i    var byte
'i=0
;METHOD 4 ,8
@ MOVE?CW _array , FSR0L    ;  PIC16 ENH CORE
;METHOD 5
'@ MOVE?CW _array , FSR     ;  PIC16 SHITTY OLD CHIP
;                                                                CHIP    
for  inx=0 to 1       ;                                                877        1825
'    word_temp.byte0=adreslo             ;METHOD 0                    30  WORDS  31
'    word_temp.byte1=adreshi
'    array[inx]=word_temp   
 
'    array[inx]=(adreshi<<8)| adreslo    ;METHOD 1                    50  WORDS   48
'    if !i&1 then                        ;METHOD 2                    57  WORDS   57
'        array_asbyte[i]=ADRESLO
'    else
'        array_asbyte[i]=ADRESHi
'    endif
'    i=i+1
    
'    array_asbyte[i]=ADRESLO              ;METHOD 3                   30  WORDS    34
'    i=i+1
'    array_asbyte[i]=ADRESHi
'    i=i+1
    
asm                                    ;METHOD 4 PIC16 ENH CORE      na  WORDS    22
  MOVE?BA _ADRESLO
  MOVWI FSR0++
  MOVE?BA _ADRESHi
  MOVWI FSR0++
ENDASM
 
'asm                                    ;METHOD 5 PIC16 OLD CHIP      27  WORDS    na
'  MOVE?BA _ADRESLO
'  MOVWF INDF
'  INCF FSR,F
'  MOVE?BA _ADRESHi  
'  MOVWF INDF
'  INCF FSR,F
'ENDASM
 
'  array.highbyte[inx*2]=adreshi         ;METHOD 6                    76  WORDS   76
'  array.lowbyte[inx*2]=adreslo
 
'  array.highbyte[inx<<1]=adreshi        ;METHOD 7                    50  WORDS    49
'  array.lowbyte[inx<<1]=adreslo
'asm                                    ;METHOD 8 PIC16 ENH CORE      na  WORDS    22
'  movf ADRESLO,w
'  MOVWI FSR0++
'  movf ADRESHi,w
'  MOVWI FSR0++
'ENDASM 
next
stop
 
				
			
Bookmarks