Jít do obsahu fóra

Nejsi přihlášen. Přihlas se nebo se zaregistruj.


(Stránka 1 z 5)

Audioweb.cz » Smetiště » Sprostý assembler versus Cčko

  Stránky: 1 2 3 4 5 »»»

RSS

Příspěvky [1 až 20 z 84]

(upravil Hazys 27. 2. 2014 22:45)

Téma: Sprostý assembler versus Cčko

...


Trocha práce přišla v ..., ale mě to nevadí, Zuki si to již přečetl, pochopili jsme se, stačilo. Příště budu podobné texty směřovat konkrétní osobě do SZ, nikoliv sem. Poučen pro příště. smile

Re: Sprostý assembler versus Cčko

pekné počítaničko, teraz mi napíš v tom ASMku ovladač pre farebný grafický TFT displej a vykresluj tam niečo. S MCU sa hram,pišem to v Cčku,  v ASMku sme robili 8051 a nie ďakujem neprosím. Pri dnešnych vykonoch aj tych najlacnejších MCU je šum a fuk či to čo napíšeš v ASMku bude trvať vykonať 10 cyklov alebo v Cčku 12cyklov.

Web

Re: Sprostý assembler versus Cčko

Hazys: Hezky clanek a mas pravdu. Jo, dneska se nepise pro rychlost ci efektivitu behu, ale pro rychlost ci efektivitu vyvoje. Muzeme nadavat, muzeme nesouhlasit, to je asi vsechno. Protoze i ty blbe veci na webu dnes zabiraji v souctu tolik casu, ze to v danem terminu bez pouziti frameworku jeden nema sanci stihnout. Smula, ale prestalo mne to stvat protoze, nic s tim nejsem schopen udelat, tohle na programatorech bohuzel neni. A najednou je mi alespon trochu lepe na svete... doporucuju.

PS: Dodneska se uklidnuju cas od casu low-level Cckem, nebo ASMkem na PICu, ale vim ze je to jen konicek a jinak to nebude, vetsina programatoru se bude zivit jinak - a tam to bez frameworku casto nejde, bo konkurence.

(upravil Hazys 26. 2. 2014 19:19)

Re: Sprostý assembler versus Cčko

A proč by to v ASM napsat nešlo? Naopak, takovou věc jako driver pro grafický LCD, je vhodnější napsat v inline assembleru jen proto, aby to běželo rychleji, a nepotřeboval jsem o dvě kategorie silnější procesor.
Klidně si o mě mysli, že sem kokot, ale varuju tě, nadávat něčemu, čemu nerozumíš, jako třeba zuki.

Při psaní těch low-level HW rutin v Cčku, ten pohled na ty úžasný zápisy logických posunů, bitových operací, to je taky strašná sranda. Mnohdy jednodušší použít inline assembler.

Jen taková demonstrace, kolik výkonu má AVR: http://elektronika.kvalitne.cz/ATMEL/S3 … layer.html
Schválně, jaký procesor bys na totéž potřeboval?


Každopádně se odchylujeme od původního záměru, proč jsem to psal.   Začátečník vůbec nemá potřebu psát driver pro grafické TFT, začítečník se má naučit základy. Není imho totiž nic horšího, než bastl poslátaný z nějakých funkčních bloků ("knihoven"), kterým dotyčný nerozumí ani z 10%.
A ty základy, včetně pochopení funkce uPC se dají dost dobře vysvětlit právě na tom strojáku. Chtěl bych vidět, jak začátečníkovi vysvětlíš funkci procesoru, na funkci printf, kterou budeš psát text na 44780 displej pomocí knihovny stažené támhle od někud z internetu wink

Re: Sprostý assembler versus Cčko

hazys, utocil som snad na teba alebo som ti nadaval ? ked ta to bavi tak to v tom pis.

Ale suhlasim s tebou ze arduino paskvil jazyk hnusny je pekny shit, vrie mi krv v zilach ked sa nad tym ludia rozplyvaju ake je to super a ake super projekty s tym dokazali a ja som debil lebo ja som to s mojimi MSP430 nedokazal... tak bodaj by nie ked zapis serial.read(); vyriesi to co ja najprv musim vyriesit cez registre pripadne celou rutinkou. Arduinak polepi 4 kniznice ktore v maine zavola a ma hotove ovladanie kvadrokoptera a tvari sa ze je king ...

strasne ma nasiera, ze take vyborne MCU ako su MSP430 dosieraju tym paskvilom z arduina, nejaky zmrd vymyslel GUI co riesi arduino - MSP430 1:1 a teraz nikto nepise v normalnom jazyku ale v hentej kokotine. Potom ked potrebujem pomoc s niecim a hladam ju na nete tak okrem pojebaneho arduino paskvil jazyka nic nenachadzam a ten mi je na konsky chuj lebo z neho nic nevycitam

Web

Re: Sprostý assembler versus Cčko

Já jsem v minulosti v Asembleru psál programy zejména pro x51, x52 a nějaké PICy a pak speciální věci pro nějaké PLC. Nenazýval bych Asembler sprostým slovem, ale...
Dnes je pro mě mnohem pohodlnější psát v C-čku. Důvodů je několik. Pryč je ta doba kdy jsem zápasil s každým bytem z důvodu nedostatku místa. Procesory dnes mají nesrovnatelně víc fukci, jsou výkonnější, mají kvantum IRQ, DMA atd, atd. A taky dokumentace, příklady jsou v mnohém směřované k psaní v C-čku. Proto když jsem se po čase k těmto věcem vrátil jsem zcela automaticky šáhl po C-čku na vzdory tomu, že jsem měl s Embeded C-čkem téměř nulovou zkušenost.
Dokonce si nedovedu představit, že bych např. ten svůj transport postavený na STM32F4xx (ARM) psal v Asembleru. Ne, že by to bylo nemožné, ale musím načíst mraky dokumentace a zápasit ještě s asemblerem by bylo pro mě holé šílenství.

Pamatuji si ze školy kdy do nás tloukli jak je C-čko špatné, jak se ty věci dělají komplikovaně apod., o rychlosti ani nemluvě. Bohužel já jsem si za svou praxi prošel všechno možné až po JEE (což mě vlastně živí) a zastávám jeden názor: "Proč dělat věci složitě, když to jde jednoduše". Jak už jsem uvedl nemám s Asemblerem sebemenší problém, ale pokud to není nutné tak raději šáhnu po C-čku.

Na okraj: I v Cčku se dají dělat nepřehledné věci a není problém to napsat tak, že se v tom ani prase nevyzná (ostatně to platí pro všechny programovací jazyky). Za svou praxi jsem viděl i Asembler v takovém rozsahu, že trvalo hodně hodně dlouho než v tom člověk našel nějaký systém a pochopil co ten člověk vlastně zamýšlel. Ony přece jen učebnicové příklady na pár řádku jsou trošku mimo to s čím se člověk může setkat. A i když je autorem tak se rychle dostane do situace, že sám neví k čemu co vlastně je. Minimálně já jsem to u sebe nesčetněkrát zažil. smile A podotýkám, že různé patterny, frameworky nebo standardy apod. mi nejsou cizí.

Web

(upravil Hazys 26. 2. 2014 19:21)

Re: Sprostý assembler versus Cčko

Však já neútočím na tebe, jen se snažím (hlavně Zukimu) vyvrátit, že v ASM nejdou dělat před-definice. Proto jsou všechny ukázky zaměřené právě na ty dráty k segmentovce a práci s definicemi/konstantami/symbolickými adresami.

Re: Sprostý assembler versus Cčko

Ja som za napríklad to "blbé" arduino. Ono sa ti to hovorí inak ked sa tomu programovaniu v assembleri venuješ roky a ked si začínal pravdepodobne iné možnosti neboli. Ked sa programovanie niekto bude učiť dnes a neni masochista tak sa bude učiť v niečom inom. Ani nikde na školách sa dnes assembler už neučí. Musíš sa s tým vyrovnať smile
Ale niesom ten pravý na diskusiu. Programovanie ide dosť mimo mna.

(upravil Hazys 26. 2. 2014 19:53)

Re: Sprostý assembler versus Cčko

Ani nikde na školách sa dnes assembler už neučí. Musíš sa s tým vyrovnať

Ty si vtipálek. Na Čvutu se učí asáč i na ARMy.  Krom toho se na čvutu učí i asáč pro x51, x86 a ST8. A snad i Motoroly (Freescale) 68HC, ale tím si nejsem jistý, jestli to v současné době platí.
Za to ardujíno sem tam neviděl nikde a to je jedině dobře.

//AVR tam sice taky používají, ale nevšiml jsem si, zda jsou tam nějaké výukové předměty zaměřené přímo na AVR.

//BTW, to je taky další zajímavý a rozšířený mýtus, že se ASM nikde neučí...

Re: Sprostý assembler versus Cčko

Nemyslím práve arduino ale Cčko. Tiež nemám prehlad o všetkých školách. Ale sám vidíš akým smerom sa to uberá.

Re: Sprostý assembler versus Cčko

Hazys & ti ostatní:

V assembleru jsem programoval v době, kdy mnozí zdejší propagátoři vyšších jazyků říkali hovnu koko.
Hazys se nesnaží provádět konfrontaci vyšších a toho nejnižšího jazyka, pouze naznačuje možnosti.
Na druhou stranu vemte třeba nějaký "prehostorický" osmibit, a napiště si program který bude mít funkci tupého impulzního relé.
8 portů IN 8portů out.

Při prvním stisku tlačítka na IN se nastaví patřičný OUT na True, při dalším stisku opět na False.
bude to regovat na vzestupnou hranu IN
pokud podrřím libovolné tlačítko déle než 1 sekunda pak všechny OUT False.

na tupý 8080 to napíšete cca 74 bajtovým kódem...
Zkus to napsat v céčku a uvidíš, co ti vyjde.

To neznaměná že ASM je lepší, je prostě jinej. a dá se v něm kouzlit.

V dobách kdy jsem intenzivně různosti programil (většinou v Packalu) tak mnoho "rutinek" jsem si uvařil v ASM. Vznikal Velmi kompaktní kód, a hlavně jsem se naučil přemejšelt. Tzn dodnes mi často stačí pár desítek kilobajt tam, kde jiná kupují procesorové moduly s gigabajtama aSSDčkama.

Pro práci v ASM i jeho studiu je dost podkladů a v mnohých ústavech se stále vyučuje. Minimálně jeho přínos vydím v tom, že učí programátory analyzovat problém k jádru věci a tvořit "kompaktní kód.
I když prasárny napíšeš i v ASM.

Re: Sprostý assembler versus Cčko

Jo, Z80 se chci naučit taky, čistě pro úplnost. Jen někde sehnat hrst těhle starých procáků, kompilátor instrukční sadu a nějakých pár keců k tomu.
Kamarád si třeba staví z diskrétních součástek celé CPU, periferie pak už dělá klasickou TTL logikou. Jádro má ale z tranzistorů. lol

Spoiler

http://3.bp.blogspot.com/-X_lEc_gZlqc/UV8Ga8UhfxI/AAAAAAAACP8/aKy1TBL2jgs/s1600/DSC02066.JPG

Re: Sprostý assembler versus Cčko

arduino je ciste zlo. jednak dokurveny jazyk, po druhe nemoznost debugovania, po tretie spartanske IDE ktore neposkytuje okrem save a upload vobec nic, po dalsie nemas absolutne paru co ten MCU realne robi , ziaden nahlad do registrov, kontrola, proste nic...

pozri si napr. IAR a potom pochopis preco arduino NIE !!

Web

Re: Sprostý assembler versus Cčko

Kamrád teď koupil Z80 a píše si pro to vlastní OS, včetně vlastní adresace RAM a podobně...
Souhlasím částečně, ASM přecejen trochu znám, pro 8 bity určitě proč ne, ale dnes má mnohem více nevýhod, než výhod...pro mě je to, že je nepřenositelný, prostě problém. Psát v ASM pro ARM nebo jiný 32 bit si taky netroufne moc lidí, vyjma nějakých rutin kde jde vyloženě o optimalizaci a naprosto přesný sled (třeba dekodování SPDIF). Psaní celého programu pro ARM v ASM? Tomu říkám taky brutální prasečina.

Arduino je samozřejmě totální odpad, naprostá neoptimalizovaná sračka. K .net mikroframeworku se nebudu vyjadřovat, to je nejhorší z nejhorších, zažere veškeré prostředky procesoru a na smysluplné úlohy není místo ani výkon smile Je tam vidět, že to dělala stejná společnost, co dělá windows smile
Taky pokud jde někdo s C++ na mikrokontroléry, tak ho ženu vidlema. Dobře použité Cčko nemusí být vůbec od toho ASM daleko a vývoj trvá 5x kratší dobu. ASM pro 8051 je parádní, ASM pro PICy je pěkný hovno...ale možná jsem zaslepenej, jelikož i když by PIC měl z 8051 vycházet, neumí nic, nemá výkon ani prostředky a stojí stejně jako AVR, které je architekturou a instrukční sadou optimalizované pro C kompilátory a s mnohem více paměti i výkonem. Já třeba nedám dopustit na AVR32, jsou to výborné procesory, drahé, ale super...líbí se mi více jako ARMy.

(upravil Hazys 26. 2. 2014 21:34)

Re: Sprostý assembler versus Cčko

Dobře použité Cčko nemusí být vůbec od toho ASM daleko
No a o tom to přece je ne? Člověk ale musí znát, co ten procesor pod tím dělá. Nemyslím si, že každýmu hnedka dojde (tím spíš začátečník), že čtení z tabulky z FLASH je N-násobně rychlejší a lepší, než nějaká struktura switch. Proto jsem taky do ukázky zahrnul  i to čtení z FLASH v Cčku, rychlostně je to podobné (stejné), jako bys to napsal ručně v asáči. Ale dotyčný musí vědět a být si přesně jistý proč.
Taky pokud jde někdo s C++ na mikrokontroléry, tak ho ženu vidlema.  - Nápodobně lol
ASM pro 8051 je parádní - však jo.. CISC a pár instrukcí, co se snadno pamatujou. A co se nepamatuju, to se vytiskne na papír, nebo má po ruce správnou knížku.
PICy jsem nějak obešel obloukem. Sice tu mám k nim nějaký knížky i hrst 16F84, 16F628 a pod, ale nějak jsme se už k tomu nedonutil. Stačilo mi zjistit, jak je to jádro úplně domrvené, k tomu ten 8miúrovňový SP nebo co jsme to kde četl a radši sem to mrštil do kouta. Na jiné řady piců (18F, dsPIC) sem se nekoukal. Při cenách, co to stojí je lepší vzít třeba to AVRko, nebo něco jiného moderního ražení, třeba ST6, 7 nebo 8. (i když jejich ceny taky nic moc, AVR vedou).
PIC že má vycházet z51čky?! Cože? To kde tvrdí yikes Co si pamatuju, ty PICy jsou úplně jiné a padlé na palici.

//Když ses přiznal, že děláš s AVR32, mohl bych někdy případně prudit, že bys mi s nima trochu helfnul?

(upravil pzwak 26. 2. 2014 21:50)

Re: Sprostý assembler versus Cčko

Začínal jsem na i8080 - přivezený z NSR (Dalčův PMI-80 byl tenkrát výkřik moderny a měli jsme jeden na katedře) a dělal diplomku na Z80 - přivezený z NDR, samozřejmě v ASM. Dají se v tom dělat kouzla, kde jsem si vystačil  s 256 byte pro program i linearizační tabulku (2x MH74S287) v teploměru pro nevidomé s akustickým výstupem s rozlišením na desetiny stupně. Jasně, šlo to, bylo to fajn a bavilo mě to. Na 80286 jsem si v ASM napsal rutiny pro převod znakových sad češtiny pro klávesnici a grafiku. Taky to šlo, ale dalo to víc zabrat. Jako koníček je to prima, pro uživení se je to naprd. K asembléru bych se profesionálně vracel jen tehdy, pokud by nebyl jiný vhodný nástroj. Podotýkám, že mě programování živí už víc než 20 let.

Neříkám, že se v asembléru nedá napsat jednodušší a výkonnější kód, ale pokud se v tom má hrabat někdo jiný než autor a nemá k ruce PODROBNĚ okomentovaný kód, užije si spoustu bezesných nocí (taky jsem to zažil, takže vím o čem mluvím). Je hezké si hrát a mít pocit že jsem king, protože píšu v ASM. Ale pro reálnou praktickou práci to není. Dnes už opravdu není potřeba šetřit každý bajt a každou strojový krok. Na druhou stranu je ASM skvělé na pochopení programování jako takového (proto se taky pořád učí), protože spousta dnešních "programátorů" neví co vlastně programuje, lepí jen procedury a funkce dohromady a když dojde k vstupním datům, která nečekali, diví se, že to posere a nefunguje.

K Arduinu osobně nemám výhrady, je mi úúúplně šumafuk, jak je sprasený překladač nebo že by se CPU dal využít efektivněji. Na jednoduché logické aplikace je jak dělané, dá se programovat snadno, program se dá snadno nahrát pře USB bez dalších serepetiček, je to malé, kompaktní a výkonné. Pro spoustu lidí, kteří nemají čas se učit instrukční sady jednotlivých CPU a shánět loadery, jak kód do nich narvat, je to na jednoduché aplikace naprosto postačující. Jinak by se asi tolik nerozšířilo, že smile Jak říkal Jára Cimrman - můžete se proti tomu bouřit, můžete s tím nesouhlasit, ale je to tak asi všechno, co se proti tomu dá dělat. Opět je třeba podotknout, že na všechno se Arduino nehodí a řešit zapínací tlačítko Arduinem místo použít jeden D-klopák je zhůvěřilost. Ale nakonec i to jde.

Omlouvám se, že jsem si dovolil s Hazysem nesouhlasit v jeho vlákně, ale za svým názorem si stojím, je podložený praxí. Na každou aplikaci může být vhodné a výhodné něco jiného, jednou ASM, jednou C a jednou třeba .NET. Někde Z80, jinde Arduino. Howg.

Web

(upravil Hazys 26. 2. 2014 22:14)

Re: Sprostý assembler versus Cčko

Jo, jasně, na jednoduché logické aplikace rovnou atmega328p, protože by se to jinam nevešlo - to je přesně ten přístup, co mě na tom dráždí nervy lol

Rozšířilo se to jenom proto, aby lepiči měli kde lepit. Já v tom ardujínu nevidím jediný přínos. Je to drahé, zbytečné, a používat doprasené knihovny nepotřebuju, raději si napíšu vlastní, sice u toho spálím třeba půl dne času, ale budu si jistý funkcí a spolehlivostí.
Program do AVR nahrajete i bez bootloaderu bazmekem za 100Kč (USBasp), pokud je třeba jednorázově, tak přes STK200 přímo LPT portem PC. (nemluvě o tom, že USBasp je zas jen AVRko, čili celé je to primitivní na zprovoznění.) A nahraje to všecky AVR, včetně 51ček ATMELu disponujících ISP. Snad jen kromě několika málo speciálních výjimek. Zatímco někteří "experti" nejprve musí vymyslet, jak ardusmrad nacpat do nějakého attiny, aby se tam dal udělat nějakej chytřejší klopák na otevírání vrat od garáže. Takovou funkci, jednoduchou a jen logickou, bych s klidem a "s prstem v nose" za chvíli nabouchal klidně v tom assembleru, a ještě by v tom kilobajtovém attiny zbyl kilometr místa.

Jen pozn: Nikde netvrdím ani jsem nepsal, že někomu nutím ASM nebo v tom píšu všecko. Jak správně Dalča poznamenal, udělal jsem pouze srovnání ASM-C na konkrétním případu, týkajícího-se především možnosti definic a symbolů, které jsou v tom ASM naprosto stejné, jako v C.

A musím poznamenat, již jedné osobě jsem úspěšně vysvětlil, že je to ardujíno k ničemu. Dotyčný to pochopil velmi dobře, nyní píše programy do čistých AVR bez toho balastu. Ono to totiž jaksi není vůbec o nic složitější, má to jen výhody, že tam nepřekáží cizí balast.

Re: Sprostý assembler versus Cčko

Vždyť Cčko vzniklo jako takové malé zlepšení ASM. Přidaly se příkazy pro cykly a if-else atd. To usnadňovalo psaní a čtení programů.

Re: Sprostý assembler versus Cčko

Zdar Hazys. Má věta o asm a sprostém sluvu byla myšlena jako nadsázka a vtípek smile 

Docel jsem čekal podobnou reakci, ale že s toho bude takový pěkný čtení mě až překvapilo.  Ale jestli si četl pozorně co jsem psal, tak jsem začal, že je třeba (v C apod. ) používat definice a konstanty na začátku kódu, což je to samé čím si zaplnil 1/2 příspěvku. smile 

Ale dík, že jsi mi ukázal něco v ASM. Nicméně si nemyslím, že zrovna Pískomil (i když ho nepodceňuji) by v assembleru našel životní lásku smile A aby naprogramoval nějakou bránu k řízení motorku, tak mu stačí pár řádků v C - což jsem nabídnul, že mu s tím i pomohu... v asm to neumím...

Jsem HW a min 20-30let jsem řešil logikou to, co se dnes řeší uP. Takže dát někam klopák, nebo posuvný registr, nebo USART, mi nepříjde až tak složité. Dokonce jsem před cca 20 rokama sám dělal HW desky do slotů PC včetně veškerého SW i s výstupem v  jednoduché grafice.
Prošel jsem Fortranem, Basicem, Pascalem, DBase - abych je skoru už zapoměl a skončil Cčkem. C++ a ASM neumím (jen lehce tuším) a k HW jsem ho zatím ani moc nepotřeboval (C+ mi stačilo pro Hitashi, 51, ATMEGU..., PC 86-486 atd.).

A jak zmínili i jiní, tak dnes je to o rychlosti vývoje a "dědění" kódu pro další nové a nové přístroje. A ty mají často úplně jiný procesor, ale až na pár definic adres portů apod. mají skoro stejné C-čko... smile
A taky je to o tom, že v C se většinou domluví i trochu HW-ráři s SW-rářema a mohou spolu řešit "rozhraní". Taky šéf může kdykoli někoho vyhodit a druhý den na tom v Cčku pokračuje někdo jiný...  Třeba dle tebe "plácám" polopravdy a nesmysly ( na SW-ráře si opravdu nehraji), ale každý to vidíme z té své strany a pod jiným úhlem.

Tak se nerozčiluj, byl to jen (kandský) vtípek...

Re: Sprostý assembler versus Cčko

Hazys: Vcelku s tebou souhlasím, že se občas používají uPC zbytečně tam kde stačí trocha logiky, Arduina tam, kde stačí jednoduchý uPC v ASM. Jenže jsi zapomněl na jednu věc - ne každý má chuť a čas pronikat do hloubky strojového kódu a navrhovat řešení od začátku. A tak sáhne po hotovém polotovaru, který lehce napasuje na svůj problém a je mu jedno, že stoji o 100-500Kč víc, protože ty se mu vrátí v ušetřeném čase a ušetřeném úsilí pro řešení něčeho, co řešit nepotřebuje a nechce. Odsuzovat někoho, že používá automatickou převodovku v autě jen proto, že já umím docela slušně řadit auto bez synchronu ještě s meziplynem je taky poněkud scestné, i když obě auta jezdí a pro převod síly motoru na kola stačí opravdu jednoduchá převodovka... smile Mimochodem, taky si někdy zajdeš na jídlo do restaurace, i když si můžeš namazat chleba se sádlem, který tě nasytí stejně smile Nikdo nevyvrací, že ASM a jednoduchý uPC je výkonnější a úspornější, ale jsou situace, kdy je lepší použít Arduino. Chce to trochu nadhledu a podívat se na problém i z té druhé strany, jak píše Zuki... wink

Web

Příspěvky [1 až 20 z 84]

  Stránky: 1 2 3 4 5 »»»

Audioweb.cz » Smetiště » Sprostý assembler versus Cčko

Podobná témata


~±«|»¼½¾²³&@µΩπØ$£