Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Akú úlohu zohráva jazyk assembler v dnešnej dobe?

Takže na assembler nepotrebujeme žiadne vysokoúrovňové IDE, ani prekladače? Stačí ho napísať v Notepade (Poznamkový blok) a spustiť cez cmd.exe a pojde to aj vo formáte .txt?

Otázka začiatočníka.... nejaký kompilér alebo interpreter je potreba vždy. A taktiež poviem že IDE netreba nikdy, ale používa sa pre zjednodušenie programovania a je to jednotné rozhranie pre kopec toolok, IDE ponúka snippsety, sugesce, rozhranie pre debugovanie, rôzne formátovacie nástroje, aj integrujú kompiléry atd atd. Ale kludne aj Céčkový program môžete písať v poznámkovom bloku, resp. v akomkoľvek editore ktorého output je v plaintext formáte. Formát súboru ako .txt nemá nič spoločné jak so súborom samotným tak s jazykmi a kompilérmi. Žial formáty a možnosti pomenovania súborov dosť laikov mätie Windows. Ale v Linuxu nieje nič neobvyklé že súbor nemá príponu. A možno prekvapím, ale môže existovať aj platný súbor s názvom ".........." nebo dokonca aj so znakom zalomenia riadku. Viac bys pochopil kdybys pracoval s Unixovými príkazmi, od ls, mkdir, shred až napr. cez presmerovania a pak až po pokročilejšie veci. Ostatne pojem "vyžadujúceho len veľmi malé prostriedky" znamená že zatiaľ čo výpočet 15 faktoriál by v programe napísanom v Céčku trval trebárs pol sekundy,... tak v programe napísanom v assemblery to trvalo 100ms. (to je príklad, záleží od samotného HW, od toho jak je to napsané, jakým kompilérom kompilované, rôzne optimalizácie atd). A taktiež aj to že zatiaľ čo program v Céčku môže zaberať v RAM 2 kilobajty, tak ten istý v assemblery môže zaberať 1 kilobajt. (jejich skompilovaná binárna verze).

tu kus nechápem, co znamená že pracuje veľmi tesne nad HW? A Ccko nemá kontrolu nad všetkým, nad každým bajtom a inštrukciou?

Céčko priamu kontrolu nemá. Dokáže pracovať len s tým čo mu umožní systém. Samotný program v Céčku je oddelený od HW akousi medzivrstvou tvoreného zo pseudoAPI systému. Díky tomu nieje možné programom zasahovať do behu iného programu. Když si v Céčku alokuješ pamäť, tak si tú pamäť poptávaš práve od systému, ktorý jasne určí že od tadiaľto po tadiaľto môže program zapisovať bity, a mimo toho priestoru program pamäť akoby nevidí. Assembler ale nebeží nad systémom, a preto má možnosť priamo zasahovať do ktorejkoľvek časti pamäte (samozrejme aj tu je malá medzivrstva, nejaké ochany má processor aj v sebe, ale je tá vrstva omboho tenšia). Ešte treba zmieniť že v processore sa inštrukcie jednotlivých processov vykonávajú v sérii. Processor nedokáže pararelne obslúžiť všetky processy. Systém má nastarosti práve aj to že konkrétny čas processora priradí určitému processu, medzi týmito časmi dochádza k prerušeniam (ešte bych tu mohol plácnuť pojem interupt handler, HALT, a pod. ale to už je príliš veľa na laika). Ty to ako uživateľ možno nevnímaš, to preto lebo tie časi "obmien" sú extrémne krátke. Ale processor má tiež akýsi zásobník v ktorom sú naukladané inštrukcie, ktoré sa postupne budú vykonávať. Ale to už asi jdu príliš do detailov. Inak assembler resp. jazyk symbolických inštrukcií aj napriek tomu jak je "starý" je snaď najdôležitejší jazyk vôbec.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny