Megéri legelső programnyelvnek Assembly-t tanulni?
Elvileg ez a legnehezebb, viszont a gépi kódhoz legközelebbi nyelv, ezért ezt tartom a legérdekesebbnek.
Szeretnék majd venni egy Arduino-t is bütykölni, arra lehet assembly programot írni?
Arduinora inkább C-ben szokás.
Az is elég hardver közeli nyelv.
Nem igazán jó általában az assembly, mert kezdetben nem sok sikerélményed lesz vele. Viszont úgy tűnik elég céltudatos vagy, és már a célplatformodat is megtaláltad.
Én azt ajánlanám próbálkozz először a Arduino saját nyelvével és azzal rakj össze valami látványosat: vegyél hozzá SD kártya slotot, kijelzőt, GPS modult, motorvezérlőt, giroszkópot, stb. az érdeklődési körödnek megfelelően.
Aztán ha úgy látod, hogy kevés ez neked, akkor érdemes megismerkedni az assemblyvel vagy a C-vel. Arra azért készülj fel, hogy legalább tízszer annyi ideig tart a fejlesztés és a kódod nem lesz hatékonyabb, mint a AVR C fordító által optimalizált.
Én meg azon a véleményen vagyok hogy azt tanuld amit érdekesebbnek találsz. Sikerélményed lesz bőven mindkét nyelvvel mikrokontrolleren. És ez különösen igaz az Assembly-re és a gépi kódra. Én is anno így kezdtem, és nem bántam meg, legalább volt egy erős alapom és értettem hogy hogyan működik az architektúra amire programozok. Ez manapság sokakból hiányzik. Az assembly nem nehezebb mint bármely másik nyelv legfeljebb hosszadalmasabb és másmilyen. Van egy maréknyi utasítás és azokat használod egy nagyon egyszerű szintaxissal.
PC-re mindenképpen inkább a C-t ajánlanám, de a mikrokontrollerek világa kicsit más. Semmivel sem egyszerűsíti le a C a bitműveleteket, megszakításokat és az I/O kezelést amikre a leginkább szükséged lenne eleinte. Ha pedig eljön az az idő amikor komplexebb dolgokra vágysz és Assemblyvel már túl macerás lenne, akkor viszonylag könnyen át lehet térni Assemblyről C-re és legalább elmondhatod hogy ezt is kipróbáltad.
Arról viszont tudnod kell hogy míg a C platform független, az assembly nem. Minden CPU architektúrának más az utasításkészlete, és ez különösen igaz amikor egy Intel x86-ot állítasz egy Atmel AVR-el szembe, mert az egyik CISC a másik pedig RISC utasításkészletet használ és az egyik Harvard a másik Neumann architektúrájú.
C-nek sok az előnye, úgyhogy erősen vedd fontolóra, de az hogy melyik ad több élményt teljesen szubjektív dolog, te ismered magadat a legjobban. Nekem soha nem adott akkora élményt bepötyögni hogy printf("Hello World"); mint amikor fogtam a processzor adatlapját, nyitottam egy .com fájlt és elkezdtem összerakni az első programomat gépi kódban és a végén egy megszakítással kiírattam hogy Hello World :) Ellenben nem is írtam komplex dolgokat de talán egyik kezdő sem szokott C-ben. Ha gyorsan nagy eredményeket akarsz látni akkor kezd PC-n mondjuk egy Pythonnal, jó alapod ad megérteni hogy hogyan is működnek a dolgok vagy ha van már Arduino-d akkor a saját nyelvével.
Előny: szemléletet ad, egészen más alacsony szinten, csak néhány utasítással programozni, mint feljebb, ahol egy utasításból sok lesz. Jobban megértheted a számítógép működését.
Hátrány: hosszabb kód, több utasítás kell egy programhoz. Nehezebb átlátni, nehezebb kezelni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!