Hur "loopar" man minnesplatser i assembler för en PIC?
Postat: 26 mars 2009, 15:52:43
Hej!
Jag är ny på PIC-programmering, så jag kan tänka mig att jag borde skämmas mer än jag gör för att ställa en så enkel fråga, men... Säg att jag tar kanske 10 (små) värden som jag sparar undan i en variabel, adc, som jag har deklarerat som:
> VAR UDATA_SHR
> adc RES 10
> tmp RES 1
och vill göra något som tex:
> movlw .1
> movwf tmp
> movf adc+tmp,w ;<--- problem
> addwf adc,f
..och sen loopa tillbaka och öka på tmp med 1 upp till 10 för att gå igenom alla värden och lägga dom i första värdet "adc+0". Hur löser jag detta så att MPLAB inte tycker koden är för komplex? Utan loop, som:
> movf adc+1,w
osv med adc+2,adc+3,...,adc+10
...fungerar ju, men det är inte så kul lösning om det är flera värden.
För andra nybörjare hittade jag en väldigt bra guide på http://www.gooligum.com.au/tutorials.html för några månader sedan. Fast det kanske är gamla nyheter för er här. Jag tycker i varje fall den guiden var väldigt bra jämfört med många andra. Den är bra skriven, grundlig, och väldigt gratis om man inte vill skänka pengar till dom. Det vill jag ifos, men eftersom jag är studerar och har 0 kr på banken så får det vänta tills jag är klar i plugget (och ja, om jag minns och fortfarande har nytta av guiderna då så tänker jag faktiskt ge dom pengar (någonting i varje fall) - dom är värda det).
Jag är ny på PIC-programmering, så jag kan tänka mig att jag borde skämmas mer än jag gör för att ställa en så enkel fråga, men... Säg att jag tar kanske 10 (små) värden som jag sparar undan i en variabel, adc, som jag har deklarerat som:
> VAR UDATA_SHR
> adc RES 10
> tmp RES 1
och vill göra något som tex:
> movlw .1
> movwf tmp
> movf adc+tmp,w ;<--- problem
> addwf adc,f
..och sen loopa tillbaka och öka på tmp med 1 upp till 10 för att gå igenom alla värden och lägga dom i första värdet "adc+0". Hur löser jag detta så att MPLAB inte tycker koden är för komplex? Utan loop, som:
> movf adc+1,w
osv med adc+2,adc+3,...,adc+10
...fungerar ju, men det är inte så kul lösning om det är flera värden.
För andra nybörjare hittade jag en väldigt bra guide på http://www.gooligum.com.au/tutorials.html för några månader sedan. Fast det kanske är gamla nyheter för er här. Jag tycker i varje fall den guiden var väldigt bra jämfört med många andra. Den är bra skriven, grundlig, och väldigt gratis om man inte vill skänka pengar till dom. Det vill jag ifos, men eftersom jag är studerar och har 0 kr på banken så får det vänta tills jag är klar i plugget (och ja, om jag minns och fortfarande har nytta av guiderna då så tänker jag faktiskt ge dom pengar (någonting i varje fall) - dom är värda det).