Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoć oko nekih nedoumica vezanih za asembler

[es] :: Elektronika :: Mikrokontroleri :: Pomoć oko nekih nedoumica vezanih za asembler

Strane: 1 2 3 4 5

[ Pregleda: 14526 | Odgovora: 84 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

strš
ČAČAK

Član broj: 59295
Poruke: 324



+2 Profil

icon Pomoć oko nekih nedoumica vezanih za asembler20.05.2010. u 23:18 - pre 169 meseci
Pozdrav.
Kao prvo nemam znanje oko programiranja tako da ova pitanja su uopštena da bih uopšte počeo da shvatam suštinu.
Prvo na netu ima "brdo" dokumentacije,tutoriala u vezi programiranja ali ne mogu da nađem sebe u celoj toj priči.Nešto mi fali ali ne znam šta(verovatno škola).Želim da naučim da programiram mikrokontrolere u asembleru (za početak) pa me interesuje da li je isto programiranje softwera i mikrokontrolera(mislim da li je set instrukcija isti)?
Drugo da li je asembler ima određeni set funkcija i to je to,pa sa njihovom kombinacijom dođeš do programa koji si hteo ili svaki mikrokontroler ima svoj set instrukcija?
Treće ako imam zapis u hex fajlu da li mogu sa nekim (kojim?) programom da "prebacim" u aseblerski zapis da bih pokušao da isčitam taj program?
Četvrto ako i uspem da prebacim u asm fajl na koji način da pokušam da shvatim program tj. odakle da počnem?
Za sada toliko.Ovo pitanje sam postavio i u forumu asembler jer nisam siguran gde treba da postavim pitanje.
Još jednom pozdrav i nezamerite na možda glupim pitanjima.
 
Odgovor na temu

shpiki
Student
Novi Sad

Član broj: 50342
Poruke: 1651



+62 Profil

icon Re: Pomoć oko nekih nedoumica vezanih za asembler21.05.2010. u 01:37 - pre 169 meseci
1) Definiši kako misliš isto? U osnovi je jako slično...
2) Asembler kao asembler je "isti", ali nećeš uvek koristiti iste instrukcije za svaki uC
3) Možeš, traži po netu dissasembler
4) Od početka :D
Koliko je meni poznato (ne bavim se asemblerom) rsinisa i/ili Sepa011 se bave asm-om, pitaj ih za pomoć, siguran sam da ćeš tako najlakše rešiti probleme...

Pozdrav!
There are only 10 types of people in the world:
those who understand binary, and those who don't.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Pomoć oko nekih nedoumica vezanih za asembler21.05.2010. u 01:48 - pre 169 meseci
strš, nemoj da gubis vreme na asm. ako asm naucis "najbolje na svetu" to ti i dalje nece pomoci da posle "brze" naucis C ... razvoj u asm-u je znacajno sporiji nego u c-u, odrzavanje aplikacije je znacajno teze i skuplje a prebacivanje aplikacije sa procesora na procesor je vrlo skupo. Svi jaci mikrokontroleri danas imaju C kompajler .. cd PIC varijantu imas C kompajler za SVE generacije, i za one najmanje i za one najvece... za ove manje (10F, 12F, 16F) C kompajleri kostaju neke pare (mada za one najmanje mozes da koristis demo verzije sa 2K limitom posto ti najmanji ni nemaju vise flash-a) a za one vece 18F, dsPIC, 32, 33.. imas dzaba verziju kompajlera direkt od microchip-a koja dolazi sa svim mogucim bibliotekama koje ti trebaju ... u atmel varijanti imas dzabe open source C kompajler, odlican i odlicno podrzan kompajler, radi savrseno i mislim da pokriva celu atmel ekipu, u TI varijanti zavisno od mcu-a za MSP430 imas mspgcc koji je isto open source i isto dzaba i isto odlican ..

ako ti je neko rekao da "moras prvo da naucis asembler" da bi radio nesto drugo, reci mu da su 60te davno prosle... ja sam za PC programirao u asm-u godinama, nikad mi to u zivotu posle nije trebalo .. za mcu, super je sto u asm-u mozes da naguras tri ipo funkcije vise u isti procesor, ali ako uzmes u obzir da isti takav procesor sa 2x vise flash-a kosta dodatnih 0.1$ razmisli da li tvojih nedelju dana zivota koje si potrosio vise da bi to uradio u asm-u vredi tih 10dinara razlike !!
 
Odgovor na temu

Sepa011

Član broj: 161918
Poruke: 1817
109.106.252.*



+28 Profil

icon Re: Pomoć oko nekih nedoumica vezanih za asembler21.05.2010. u 09:27 - pre 169 meseci
@spiki: ja nisam covek od asm-a

Pisanje aplikacija u ASM-u traje predugo. BASIC (Proton+) i C su jezici koje 'govorim'
 
Odgovor na temu

shpiki
Student
Novi Sad

Član broj: 50342
Poruke: 1651



+62 Profil

icon Re: Pomoć oko nekih nedoumica vezanih za asembler21.05.2010. u 17:00 - pre 169 meseci
Izvinjavam se, pogrešno sam procenio stvari!
Dakle, ostaje mu još rsinisa, ako me i on "ne pobije".

Pozdrav.
There are only 10 types of people in the world:
those who understand binary, and those who don't.
 
Odgovor na temu

veselinovic
Jovan Veselinovic
Ist. Sarajevo

Moderator
Član broj: 7761
Poruke: 3872
91.191.34.69



+334 Profil

icon Re: Pomoć oko nekih nedoumica vezanih za asembler21.05.2010. u 17:35 - pre 169 meseci
Koliko ja znam Sinisa prica iskljucivo bejzik tako da je slaba fajda.
Asm samo i iskljucivo samo dio koda koji bas treba puno puta da se izvrsi pa zbog vremena iako i to slaba fajda.
 
Odgovor na temu

macedo
Zoran Trajkov
elektro ing.
Kavadarci

Član broj: 184093
Poruke: 350
95.86.9.*



+5 Profil

icon Re: Pomoć oko nekih nedoumica vezanih za asembler21.05.2010. u 18:23 - pre 169 meseci
Kod Microchip-a u samom Microchip Data Sheet imash jedan deo koji se zove INSTRUCTION SET SUMMARY. Tu su ti lepo objashnjene sve instrukcije koje mogu da se koriste pri programiranju datog microkontrolera. Procitaj ih i potrudi se da shvatish njihovu sushtinu, pa tek onda idi na pisanje programa pa makar i najednostavnijeg. Ako se osvrnesh na tutorijale bez poznavanje pravog znacenja funkcija ulazish u ''petlju'' i nema napredka. Nemoj gubiti vreme na kontinuirano trazenje primera vec nasoci svoju energiju shto bi neko rekao ovde na forumu ,,Uciti ,uciti i samo uciti,, na razumevanje datog programa-tutorijala. Tokom vremena cesh videti sta ti znaci assembler.

macedo
 
Odgovor na temu

ZZIKA
Zivojin Miskovic
Smed. Palanka

Član broj: 63877
Poruke: 318
*.dynamic.isp.telekom.rs.



+15 Profil

icon Re: Pomoć oko nekih nedoumica vezanih za asembler21.05.2010. u 18:29 - pre 169 meseci

Početnik koji tek ulazi u svet mikrokontrolera ne bi trebao da krene sa Assemblerom, jer će vrlo brzo izgubiti volju za programiranjem.

Nije loše početi sa BASICom, pa vremenom preći na C. Po meni - tako će se najlakše savladati materija i najbrže doći do željenih rezultata.

 
Odgovor na temu

sinisa_s
Bremen

Član broj: 98726
Poruke: 55
*.adsl.alicedsl.de.



+3 Profil

icon Re: Pomoć oko nekih nedoumica vezanih za asembler21.05.2010. u 22:45 - pre 169 meseci
I moj glas za C. Asembler nemas razloga da ucis. Svaka arhitektura mcu-a ima razlicit asemblerski jezik i samo ces izgubiti nerve. Kao sto su ljudi vec rekli danas memorije na mcu imas sasvim dovoljno kao i na svakom kucnom racunaru pa je ne treba stedeti. Retke su situacije gde treba nesto napisati u asembleru da bi dobio nesto malo na vremenu ili memorijskom prostoru a to tebi kao pocetniku nece trebati sigurno. Odluci se za neki mcu, imas ovde na forumu dosta informacija i pocni polako sa C-om. Koji god mcu izaberes ima jako puno literature koju mozes da koristis (na engleskom). Ne znam sta sve ima na srpskom, to malo potrazi.

Pozdrav.
Sinisa
 
Odgovor na temu

_str_

Član broj: 53798
Poruke: 878
217.169.223.*



+10 Profil

icon Re: Pomoć oko nekih nedoumica vezanih za asembler21.05.2010. u 22:55 - pre 169 meseci
Samo ti kreni proucavati asembler i to kao dobar pocetak.
__*__
*___*
 
Odgovor na temu

strš
ČAČAK

Član broj: 59295
Poruke: 324



+2 Profil

icon Re: Pomoć oko nekih nedoumica vezanih za asembler21.05.2010. u 23:47 - pre 169 meseci
Pozdrav svima.
Zadivljen sam brzinom i "količinom" odgovora,ali stvarno!Hvala puno.
Koliko sam shvatio asembler je zastareo sistem za programiranje mikrokontrolera tako da mi je najbolje da počnem sa basic-om.Za sada nije mi važno sa kojim ću programom raditi,poenta je da u mojoj glavi shvatim na koji način i kojim redosledom se programira.
Ako assembler ,ili neki drugi program, ima set instrukcija (30 ili50...) da li te instrukcije koristiš (samo koje su ti potrebne) i nijedne druge (logično jer ih nema više)? DA ili ne?
Ima li sličnosti između programiranja (uzmimo BASIC) mikrokontrolera i neke aplikacije za računar?(možda sam lupio pitanje)
Da preformulišem pitanje,ako BASIC ima 30 set instrukcija (MOVLW,CLRW,SUBLW...) da li te instrukcije imaju isto značenje za programiranje mikrokontrolera i aplikacije za računar tj. ako znam da programiram mikrokontroler (čitaj poznajem set instrukcija) onda ću znati i da programiram aplikaciju u računaru?Da ili ne.
Ovi odgovori su mi potrebni da rasčistim nedoumice u svojoj glavi.
Ako ste još tu imam još nekoliko pitanja.
Da li je U BASIC-u set instrukcija isti za sve mikrokontrolere samo se menjaju adrese na kojima se upisuje podatak?DA ili ne.
Pokušaću da vam objasnim kako ja trenutno "vidim" programiranje.
Uzmimo za primer STATUS registar (primer sam uzeo iz knjige PIC mikrokontroleri).Upišem STATUS i 7bita u hex obliku (za sada nebitno).Sama reč STATUS ima neko značenje ali mi nije jasno da li je ova reč povezana sa mikrokontrolerom ili sa programom u kom pišem (recimo BASIC ili assembler-nebitno)?Ako je sa mikrokontrolerom da li to znači da prvo moram da nađem njegov datasheet i da naučim njegove set instrukcije?Ako je sa programom u kom pišem (recimo BASIC ili assembler-nebitno) da li to znači da je za sve mirokontrolere reč STATUS istog značenja?
Dalje ,posle reči STATUS ide podatak od 7 bita gde svaki bit ima neku funkciju da uključi (1) ili isključi (0) nešto(primer u knjizi bit0-prenos, bit1-DC prenos, bit2-indikacija nultog rezultata, bit3-Power down bit, bit4-TO prekoračenje sigurnosnog brojača itd.)?Da li su ovi bitovi za svaki mikrokontroler različiti i mora da se prvo pročita koji je za šta zadužen u datasheet-u?
Dosta za sada sa pitanjima jer ako nastavim nigde kraja.Ako imate strpljenja pomognite mi da shvatim celu priču.
Znam da ima tutorijala ali nemože da se nađe baš sve što ti nije jasno.Smatram da ću ovako pre da savladam programiranje.Naročito ako ima ljudi koji žele da objasne.
Izvinjavam se ako sam neko pitanje postavio koje nema veze,to je samo iz neznanja.
Još jednom hvala puno!
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: Pomoć oko nekih nedoumica vezanih za asembler22.05.2010. u 07:56 - pre 169 meseci
Ajde da probam i ja da pomognem. Da, koristim asembler i u početku sam pisao isključivo u njemu dok me drugar nije ubedio da predjem na PBP, čemu sam se ja dugo protivio. Sada radim 99% programa u PBP-u kombinovano sa ASM-om.

Kao prvo, asembler je veoma koristan i jako je dobro poznavati ga jer samo pomoću njega programer ima potpunu kontrolu. Npr. u PBP-u ne postoji naredba za pauzu od npr. 3 µs. Da bi je realizovao, treba poznavati ASM instrukcije, njihovo trajanje, kao i kako izračunati vreme izvršenja ASM instrukcija.
Medjutim, činjenica je da je razvoj programa u višim jezicima brži, pa i lakši, ali i to donekle zavisi od seta instrukcija za dotični kontroler, kao i od iskustva programera i već realizovanih programa jer može neke funkcije koje je realizovao da kopira iz svog već napisanog programa.
U ASM-u ne postoje mnoge instrukcije, pa čak i one naizgled najjednostavnije. Npr. neki kontroleri nemaju instrukciju poredjenja tipa manje-veće-jednako već se ona realizuje oduzimanjem pa proverom flegova. Većina nema ni instrukciju množenja ili deljenja već samo sabiranja i oduzimanja.

Prenosivost jeste manja kod ASM-a nego kod nekog višeg jezika, naročito ako se program prepravlja za kontroler drugog proizvodjača, mada ja lično do sada nisam imao takvu potrebu. U okviru jednog jezgra promene su minimalne. Za prenosivost je najbolji C jer se proizvodjači kompajlera uglavnom drže standarda. Za početnika koji ne zna skoro ništa o samom programiranju možda je ipak najbolji neki BASIC pošto je, po meni, jednostavniji za shvatanje samog principa programiranja.

Medjutim, sve je individualno: ako neko hoće što pre da napravi svoj prvi program, onda BASIC. Ako hoće da ima dobre temelje, onda ASM, ali će trebati više vremena. Ako hoće da radi na raznim kontrolerima ili da se zaposli u nekoj firmi koja upošljava programere za µc (mikrokontrolere), onda C. Ovo, po meni, važi za apsolutnog početnika.

To bi bilo opšte, a sad u drugom postu idu odgovori.

Pozdrav.
Sinisha
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: Pomoć oko nekih nedoumica vezanih za asembler22.05.2010. u 09:00 - pre 169 meseci
@ strš
1. Set instrukcija nije isti. Nije isti čak ni kod 2 proizvodjača istog jezika za PC računare. A i sasvim je drugi tip programirana u pitanju - svaki uredjaj sa µc ima različit hardver za razliku od PC-a koji uglavnom ima isti hardver oko sebe.
2. Svaki kontroler ima svoj set instrukcija. Oni sa istim jezgrom imaju iste instrukcije, a u okviru familije može da postoji veći ili manji set instrukcija, dok u okviru različitih familija istog proizvodjaća može da bude većih razlika.
3. Kao što reče shpiki, može i taj program se zove disasembler. E sad, asembler je opet kompajler koji prevodi ASM instrukcije u mašinski kod, što je u stvari osnova svakog procesora odn. mikrokontrolera. Čak i medju asemblerima postoje razlike, mada su one minimalne i najčešće se svode na to kako se označava npr. dekadni sistem, kako hexa i sl. Najveće razlike su u pseudo instrukcijama i već ugradjenim makroima u sam asembler tako da jedan ASM program verovatno neće proći kroz sve asemblere iako su predvidjeni za isti kontroler. Takodje i disasembler može da da listing koji neće proči kroz svaki kompajler, ali se tu stvari lako popravljaju.
4. Shvatiti program nije lako pogotovo ako nemaš shemu uredjaja jer, za razliku od PC-ja koji uglavnom ima isti hardver, kao što već rekoh, svaki uredjaj sa µc je drugačiji. Ti možeš da razumeš program, ali bez sheme nećeš da shvatiš zašto je to tako i šta se time dobija. Pa čak i ako imaš shemu, razumevanje programa može da bude veoma teško kod složenijih uredjaja. Medjutim, mislim da to ne treba da te brine - projekti koji su slobodni obično idu sa sorsom, dok kod onih koji nisu kontroler je zaštićen od čitanja.

Odgovori na tvoju drugu poruku:
Ne, asembler nije zastareo, ali se danas "pametni klinci" (ne želim nikoga da vredjam) ne bave asemblerom i onda se pišu ogromni neoptimizovani programi u višim programskim jezicima koji rade sporije nego što bi trebalo i zauzimaju više memorije nego što bi trebalo pa se pribegava bržim i snažnijim kontrolerima. Naravno, rečeno je već da su razlike u ceni za kontrolere sa više memorije male, i to stoji, ali to mene počinje da podseća na PC - danas ti treba bar 2 Gb RAM-a i dvostruko jezgro u procesoru (za one sa engleskog govornog područja - dula core) da bi napisao i najkraći .doc dokument. No, to je već stvar ličnog afiniteta i mislim da ne treba širiti priču dalje.

Od instrukcija koristiš one koje su ti potrebne od onih koje su na raspolaganju u konkretnom µc.

Instrukcije mogu, ali ne moraju da imaju isto značenje u nekom jeziku za PC i µc. Npr. ti ni u jednom BASIC-u za PC nemaš instrukciju tipa EEPROM jer jednostavno nema potrebe za njom. Znači, ako znaš da programiraš PC ne znači da znaš da programiraš i µc, ali su neki principi isti.

Ne, kao što rekoh, svaki proizvodjač ima svoj set instrukcija i svoju sintaksu, mada i tu, kao što rekoh, postoje neki standardi (npr. LET, GOTO, GOSUB i sl.), a kod BASIC-a ne radiš sa adresama već sa promenljivima, tako da adrese nisu bitne.

Reč STATUS kod PIC kontrolera je nešto što se zove rezervisana reč i ima ih u svakom programskom jeziku i ovde je povezana sa mikrokontrolerom jer je proivodjač dao to ime jednom od registara specijalne namene. Ne znači da je i kod drugih proizvodjača µc ta ista reč rezervisana. Odgovore na ovakva pitanja dobiješ kada DETALJNO proučiš sve podatke za konkretan kontroler i kompajler. Moj najkorisniji savet koji često dajem je "Čitati, čitati i samo čitati".

STATUS nema 7 bitova već 8, kao i svi ostali registri za tu familiju. Suština je da je svaki proizvodjač nazvao registre kako je on hteo i odredio značenje bitova.

To bi bilo otprilike to mada nije lako neke stvari objasniti u par rečenica - mnogo toga je preskočeno ili nedorečeno, ali vremenom će ti sve biti jasnije.

Pozdrav.
Sinisha









[Ovu poruku je menjao rsinisa dana 22.05.2010. u 10:15 GMT+1]

[Ovu poruku je menjao rsinisa dana 22.05.2010. u 13:33 GMT+1]
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: Pomoć oko nekih nedoumica vezanih za asembler22.05.2010. u 18:59 - pre 169 meseci
Izbor izmedju asemblera i C-a moze postojati jedino na hobistickom nivou, ako se neko bavi mikrokontrolerima na nacin kao sto se npr. bavi pecanjem ili rjesavanjem ukrstenica.
Iluzija je da postoji neka mogucnost profesionalnog bavljenja ovom strukom na nivou asemblera.

Citat:
Ne, asembler nije zastareo, ali se danas "pametni klinci" (ne želim nikoga da vredjam) ne bave asemblerom i onda se pišu ogromni neoptimizovani programi u višim programskim jezicima koji rade sporije nego što bi trebalo i zauzimaju više memorije nego što bi trebalo pa se pribegava bržim i snažnijim kontrolerima. Naravno, rečeno je već da su razlike u ceni za kontrolere sa više memorije male, i to stoji, ali to mene počinje da podseća na PC - danas ti treba bar 2 Gb RAM-a i dvostruko jezgro u procesoru (za one sa engleskog govornog područja - dula core) da bi napisao i najkraći .doc dokument. No, to je već stvar ličnog afiniteta i mislim da ne treba širiti priču dalje.

Bilo kakav netrivijalni projekat, na kojem radi 3+ ljudi u 99.9% slucajeva ne moze da se realizuje u asembleru u okviru rasplozivog vremena i sredstava. Tj. svaki takav pokusaj je u startu osudjen na trzisnu propast.
Mikrokontroleri koji otvaraju vrata od garaze kad dvaput zatrubis, ili pale svjetlo kad se smraci, drmaju neko motorce napred-nazad i posalju neku porukicu na neku magistralicu kad ocitaju temp. na senzoru... i tome slicno - moze i asembler.
Probaj da napravis neki ruter pa pisi protokol stack u asembleru ili algoritam rutiranja, ili algoritam za neki malo komplikovaniji proces od pomjeranja cnc-glave, pa ces da vidis dokle ces da doguras sa asemblerom.

Programi nisu nepotrebno veliki, niti su procesori nepotrebno brzi ili memorijski zahtjevi nepotrebno veliki. Razvoj tehnike je uslovio da su te stvari jednostavno postale dovoljno jeftine u usporedbi sa ljudskim radom. Ti mislis da je nepotrebno da neki programcic trosi tolike resurse, a trziste kaze da je nepotrebno da se neki programcic razvija tri godine u asembleru ili tri nedelje u C-u, umjesto tri dana u JAVI. Da bi napravio HID interfejs neke proizvodne linije koja kosta 3 mil $, potreban ti je "nepotrebno velik" processor od 50 evra, gotove biblioteke od 200 evra i 3 dana posla za jednog covjeka. Da bi napravio isto to u asembleru na dovoljnom procesoru od 10 evra, potrebno ti je 5 ljudi koje ces placati 2 godine dok to zavrse.

Asembler ima svoje domete koje su u ovoj industriji odavno prevazidjeni. Otprilike ono sto je za nekog profesionalca u asembleru plafon, to je u visim programskim jezicima ostvarivo nekom amateru novajliji za isti, ako ne i kraci, utrosak vremena i para.
Ko nevjeruje neka proba u asembleru i C-u da napise program kojim ce pomocu misa da pomjera kursor na 128x64 LCD-u i nacrta piksel kad pritisne lijevo dugme, a obrise kad pritisne desno, pa nek javi sta je i za koliko vremena dobio u jednom i u drugom slucaju. Mogu da se kladim da ce 80% zagovornika asemblera dobiti manji i brzi kod u C-u nego u asembleru.
Sa porastom slozenosti projekta, tezina asemblerske realizacije i broj problema koje ona donosi, a pogotovo odrzavanje i debagovanje rastu eksponencijalnom progresijom.

U danasnje vreme, ne postoji nijedno opravdanje za iskljucivo koriscenje asemblera u ovom poslu kao poslu (ne kao hobiju) osim idiotluka.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Pomoć oko nekih nedoumica vezanih za asembler22.05.2010. u 19:31 - pre 169 meseci
@odin, AMIN!

mala digresija .. ne znam da li sam spominjao .. ja sam svoju development karijeru zapoceo sa asm-om (prvo za 8086 pa za 68000 pa sa se vratio na 80286, 80386 ..) i moram priznati da sam povelike pare zaradio praveci mnogo brze poslovne aplikacije u istom tom asm-u koje su na tada uzasno skupim xt masinama a kasnije jos skupljim at masinama radile extra brzo ... klijenti bili zadovoljni, uzimali moje aplikacije za mnogo vece pare od onih aplikacija u kliperu koje su mogle to isto ali 10-100 puta sporije ... (nebitno sto sam ja trosio po 10 dana za obicnu kastomizaciju dok su kliperasi to zavrsavali za manje od 5 minuta - pare su, za to vreme, i za moje godine, bile ogromne) .. utom - dosao je 486 sa jos jednom extenzijom u asm-u koju je trebalo nauciti isprobati, implementirati (hvala intelu za backwards compatibility) ... i u tom, u pola tog "testiranja", imao sam cast i nadasve srecu da se upoznam sa tada malo poznatim srbinom - Zeljkom Krnetom (Pol Krneta) koji je tada radio u digital-u u australiji i bio jedan od evangelista alfa procesora - prvog 64bitnog procesora na trzistu.... posle nekoliko dana razgovora, on nije uspeo da me ubedi da sam debil sto i dalje radim u asm-u (iako znam i C i C++ i jos mnoge druge jezike) posto je to sporo!!! i da bi mi to dokazao, predlozio je da ja napisem proigram za neki random problem koji ce da nam zada covek koji nas je upoznao (V. Cosic) ... da ne tupim dalje, Zeljko je implenetirao njegovo resenje u C-u, ja sam implementirao moje resenje u asm-u, radili smo obojica na 386 masini, njegov c je izgenerisao 3 binaria, jedan je bio oko 30% brzi od mog asm-a ali jedno 25% veci, drugi je bio oko 10% brzi i 10% manji i treci je bio oko 1% sporiji je 70% manji .. ja sam moj pisao oko 4 dana (dan noc), on je svoj napisao za 30min. Onda je on rekao, "ajde sada da portujemo ovu aplikaciju na alfu!" i tog trenutka sam ja prestao da pisem programe u assembleru .. i dalje napisem tu i tamo po neki deo koda u asm-u ali ceo projekat da radim u asm-u - nema teorije, kompajleri su toliko napredovali i optimizacioni algoritmi su toliko napredovali da pisanje u asm-u toliko nema smisla vec jako dugo ...

tako da se nadovezem na odinov post ..

Citat:

Ko nevjeruje neka proba u asembleru i C-u da napise program kojim ce pomocu misa da pomjera kursor na 128x64 LCD-u i nacrta piksel kad pritisne lijevo dugme, a obrise kad pritisne desno, pa nek javi sta je i za koliko vremena dobio u jednom i u drugom slucaju. Mogu da se kladim da ce 80% zagovornika asemblera dobiti manji i brzi kod u C-u nego u asembleru.


neka napise to za PIC, a onda neka isportuje za ATMEL :D

ja sam gomilu svog koda za neku interpretaciju i parsiranje prebacio sa pic-a na atmel .. da sam to trebao da radim iz asm-a, samoubio bi se ..


 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: Pomoć oko nekih nedoumica vezanih za asembler22.05.2010. u 19:58 - pre 169 meseci
Sve to stoji i ja nigde nisam rekao da se ceo program piše u ASM-u, pogotovo što sam rekao da ja koristim PBP u kombinaciji sa ASM-om. Ali i dalje tvrdim da jedino poznavanje ASM-a omogućava potpunu kontrolu nad kontrolerom jer ponekad u nekim delovima programa jednostavno programer mora da zna šta se TAČNO dešava i koliko traje neki deo programa. Pokušajte npr. da napišete kompletno u nekom višem prog. jeziku program koji na PIC-u koji radi na 10 MHz generiše TV test signal. Naravno, takve aplikacije su retke, ali ako naidje takav zahtev, onaj ko poznaje ASM je definitivno u prednosti.
Ja sam konkretno pisao softver za auto-alarm sa 16F628 i svakako ne bih mogao da ga realizujem da sam ga pisao u bilo čemu drugom sem u ASM-u. Izbor kontrolera je bio od strane naručioca, a obzirom na složenost programa, pitanje je da li bi mogao da se realizuje u bilo kom višem programskom jeziku. Dovoljno je samo reći da je u SVAKOM trenutku alaram morao da reaguje i prepozna komandu primljenu preko RF prijemnika od daljinca kombinovano sa raznim vremenskim zahtevima i sl, bez obzira šta se u tom trenutku dešava.
Da pomenem još i program za obrtomer koji sam pisao za PIC panel hardver koji jeste većim delom pisan u PBP-u, ali su kritične rutine pisane u ASM-u tako da sam uspeo da osvežavam LED displej u multipleksu, a da sam dobio rezoluciju od 1 o/min sve do približno 3000 o/min sa veoma velikom tačnošću.
Moj zaključak: pišite programe u višem programskom jeziku jer definitivno ubrzava posao, ali obavezno naučite ASM, može samo da koristi. O detaljnom poznavanju kontrolera koji koristite ne treba govoriti.

Pozdrav.
Sinisha


 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: Pomoć oko nekih nedoumica vezanih za asembler22.05.2010. u 19:59 - pre 169 meseci
@Bogdane

Upravo tako...
Ljudi argumentuju asembler nekim parolama iz ranih 80-tih koje se valjda prenose "s koljena na koljeno" uz gusle, a koje nemaju nikakvog dodira sa danasnjim svijetom.

Kakva crna brzina i memorijsko zauzece i bolji "uvid" u sistem, to su nabuloze koje nemaju veze sa mozgom.
Vec neki znatan broj godina unazad industrija pravi jezgra koja su optimizovana za C-set instrukcija (hint: Cortex M3), a neki vec uveliko rade na jezgrima koja su hardverska realizacija Java Virtual Masnihe.

Jedini koji koriste asembler u poslu su pisci kompajlera. Niko drugi danas od toga ne moze zaraditi ni prebijene banke...

EDIT:

@rsinisa
Ne mora covjek da pise program u asembleru da bi znao da kad napise c = a + b; sta se fizicki desava u procesoru.
Uostalom, uzmes dokumentaciju kompajlera i vidis sve sta te zanima oko generisanog asemblerskog koda i njegovog trajanja.
Sta bi bilo da je zahtjeve tog projekta trebalo modifikovati, ili dodati neku novu funkcionalnost koju PIC ne moze da obezbedi, nego moras uzeti neko drugo jezgro. Ili jednostavno, nakon par godina doraditi uredjaj za nove zahtjeve i prilike? Sve sto si ranije radio pada u vodu...

Ako u danasnje vreme dodjes do tacke da ne mozes bez asemblera ili da ne mozes da uguras svoj kod u rasplozivu memoriju, u 99.9% slucajeva to znaci da si lose odabrao platformu ili nasao lose rjesenje problema.
Ne znam da danas postoji ijedan mikrokontroler koji nema bar 2 tajmera, pa da moras da sabiras duzinu trajanja instrukcija da bi generisao neke dogadjaje u odredjenim trenucima...

Jedna od najvecih zamki u koje neko u ovoj bransi moze da zapadne je to da se uhvati jedne platforme i kategoricki pronalazi razloge i opravdanja zasto ne bi koristio i druge. A najbolji put da upadne u tu jamu je da se drzi asemblera...





[Ovu poruku je menjao Odin D. dana 22.05.2010. u 21:19 GMT+1]
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Pomoć oko nekih nedoumica vezanih za asembler22.05.2010. u 20:12 - pre 169 meseci
bogami, i c kompajler se poodavno pise u c-u :D

sinisa, nisam ja rekao (a ni odin) da ti zagovaras asm ... e sad, to da je potrebno znanje asm-a, veliko je pitanje ... u nekom pic/atmel okruzenju tu i tamo je ponekad zgodno jednu inline funkciju nacukati u asm-u gde taj asm ima 5-6 naredbi i to je to .. sve preko toga znaci, po meni, da je arhitektura losa ... mnogo je bitnije za developera da zna da pravilno koristi hw na mcu kao sto su tajmeri i interapti (ovde je atmel sa "interrup on pin" u prednosti nad "nizim" pic uc-ovima ... mislim da je to jedina stvar koju atmel ima koja mi fali na ovim piconjama manjim od 24F)

ono sto je bitno, to je da se u doticnom C-u (ja iskreno ne vidim ni pascal i basic kao ozbiljne igrace tu, mada su za hobi odlicna resenja koja u mnogome ubrzavaju rad) stvarno radi kako treba, da se nauce i prihvate sve pre/post-procesorske "naredbe" kompajleru kako bi se istom omogucilo da maximalno optimizuje program a da ne promeni nacin njegovog rada ... (volatile - kao prvi i najjednostavniji primer)

sve u svemu .. za pic - 18F ili jaca serije i C18 odnosno C30 kompajler od microchipa, za atmel avrgcc, za ti msp430 mspgcc4... svi su dzaba, sve su odlicni kompajleri i svi su zasnovani na gcc-u.
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: Pomoć oko nekih nedoumica vezanih za asembler22.05.2010. u 20:23 - pre 169 meseci
Otišli smo predaleko, ovde se ipak radi o početniku koji je u nedoumici. Ja sam i napomenuo da oni koji hoće time da se bave profesionalno treba da koriste C. Meni lično PBP je sasvim dovoljan; da imam potrebe da pravim istu stvar sa različitim kontrolerima, svakako bih prešao na C.

Pozdrav.
Sinisha
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: Pomoć oko nekih nedoumica vezanih za asembler22.05.2010. u 20:37 - pre 169 meseci
Citat:
bogdan.kecman:bogami, i c kompajler se poodavno pise u c-u :D

He, he, ma naravno, nisam mislio da oni pisu kompajlere u asembleru, nego da im je potrebno da C-izraze prevode u glavi u asembler kao dio algoritma kompajlera koga prave.
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Pomoć oko nekih nedoumica vezanih za asembler

Strane: 1 2 3 4 5

[ Pregleda: 14526 | Odgovora: 84 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.