Sziasztok!
A , programozási ismereteim tisztázásához szeretném feltenni a következő kérdést:
Több Assembly minta program tanulmányozása közben láttam,hogy használják az
EQU dírektivát. Azt tudom róla ,hogy egy szímbolumhoz rendel egy értéket .
A kérdés most következik : Honnan tudom megkülömböztetni ,hogy a rendelt érték egy memória cím,vagy esetleg mondjuk egy konstans?
A kérdés tisztázása azért lenne fontos mert lehet ,hogy a programban valamit éppen nem kommenteznek.
A válaszokat előre is köszönöm.
U.I : A PIC alkalmazás technikájában még uj vagyok úgy érzem.
Még egyszer előre is nagyon szépen köszönőm a válaszokat mindenkinek.
Üdv : Lengyel József
Nem kozvetlen erre valasz, de tudnam ajanlani a http://www.t-es-t.hu/elokep/pic/felhkk.htm oldalt. Magyarul, erthetoen leirva sokminden, ami a PIC programozasahoz szukseges.
0
Szia ,vilmosd!
Nagyon szépen köszönőm át ,fogom nézni ezt az oldalt és amit le lehet menteni le is mentem. Minél több dokumentáció áll rendelkezésre annál jobb.
Remélem a jövőben én is szívesen tudok segíteni valamivel ,ha úgy adódik.
Még egyszer nagyon szépen köszönőm az információkat. További szép napot kívánok.
Üdv : Lengyel József
0
Szia!
Nos igen, ez nem egyszerű! Az EQU, mint írtad is nem más mint egy szám szöveges formája. Általában a szöveg utal arra, hogy mire használja a programozó. Általában azért használja az ember, hogy a kódban sok helyen használt értéket csak egy helyen kelljen módosítani, vagy hogy egy számot ne kelljen megjegyezni, hanem egy értelmes szöveg utaljon rá (ilyenek a regiszterek amelyek számok, de a nevük alapján könnyebb használni).
No-de visszatérve az eredeti kérdéshez, Honnan lehet tudni! két helyről az adatlapból és a programkódból! Mindig meg van adva a memória-kiosztás mettől meddig tart a RAM, ezeket az értékeket a program valami f-es utasítással használja (movwf, andwf, addwf). A konstansokat lw-s utasítások használják (movlw, andlw, addlw)
Üdv,
Oszi
0
Szia ,Oszi11!
Nagyon szépen köszönőm a választ a kérdésemre. További szép estét kívánok.
Kezd le tisztulni a dolog.
Üdv : lengyel József
0
Szia!
Az EQU-ból nem fordul programkód. Annyit tesz, hogy ne legyen
muszáj nyers számokat írnod a kódba, hanem elnevezhesd őket az
éppen betöltött funkciójuk (jelentésük) szerint. Olvashatóbbá
teszi a kódot, és esetleg megkönnyíti az így elnevezett számok
értékének későbbi módosítását.
Az EQU tehát csak egy alternatív helyettesítő nevet hoz létre;
olyasmi, mint C-ben a #define direktíva (nem pontosan ugyanaz,
de első közelítésnek megfelel). Egy EQU-sor önmagában nem fog
módosítani semmit a regiszterekben vagy a memóriában. Hogy az
így létrehozott névből memóriacím, oda töltendő számérték vagy
más egyéb lesz, azt a felhasználó dönti el; ez attól a konkrét
kódtól függ, amelyben az EQU-val bevezetett helyettesítő nevet
felhasználják.
Loptam hirtelen egy példát a Microchip fórumából:
cats EQU 0x30
dogs EQU 0x31
"movlw cats" will mean "movlw 0x30"
"movf cats,w" will mean "movf 0x30,w"
http://www.microchip.com/forums/m241838.aspx
Jibaro
0
Szia,Jibaro!
Nagyon szépen köszönőm a választ.Sokat segítettél.A mai nap is tanultam valamit!
Még egyszer köszönőm szépen további szép estét!
Üdv : Lengyel József
0