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