Kezdőoldal » Számítástechnika » Programozás » Van még létjogosultsága a...

Van még létjogosultsága a gépi kódu programozásnak?

Figyelt kérdés
Most C nyelven programozgatok, de nagyon érdekel, hogy mi a rákot is csinál a fordító, és mi is az, amit a gép közvetlen megért. Ezért gondolkodok hogy kicsit beleásom mellékágon magam a gépi kódu programozásba, de alig találtam oktatóanyagot, és valami nagyon elavult dolognak tűnik. Van-e értelme ezt tanulni, kaphatok valami plusszt, ami hatékonyabbá tesz majd, vagy ez már csak egy nosztalgikus muzeális dolog? Használnak még ilyet?

2016. jún. 6. 00:03
 1/6 anonim ***** válasza:
100%
Felhasználói programot nem fogsz assembly-ben írni, de attól még van létjogosultsága. Kernelek, driverek nagyon használják, de pl. egy adott programnyelvről fordító compilernek is tisztában kell lenni a gépi kóddal.
2016. jún. 6. 00:20
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:
100%

Mivel végül minden megírt kód gépi kódra fordul nyilván van.

De akkor már assemblyvel kevésbé szívatod meg magad.

2016. jún. 6. 00:20
Hasznos számodra ez a válasz?
 3/6 A kérdező kommentje:
Köszi a segítséget! Én szívesen térdelek az informatika letolt gatyája előtt :D úgyhogy akkor kicsit belenézek, hogy hogy is működik.
2016. jún. 6. 00:23
 4/6 anonim ***** válasza:
100%
Gépikódban programozni nincs értelme. Assemblyben van. Ugyan kevés helyen használják (de használják!), ha megérted hogy a mai processzorok pontosan hogyan működnek az jobb programozóvá tesz és jobb kódot is fogsz tudni írni bizonyos esetekben. Utasítás csővezetékezés és újraszervezés, elágazáspredikció és cachelés, stack alignment SIMD miatt (SEE/MMX), meg általánosságban is hogy működik a program, heap, stack, regiszterek, függvényhívás, dinamikusan betöltött könyvtárak, a futtatható fájlok felépítése, szál konkurencia. Meglátod miért annyira más a 32 és 64 bit, nem csak utasításokban de működésben és konvenciókban is. 32 biten a Unix hívás konvenció eléggé különbözött a Windowsétól, 64 bit ezt feloldotta és a Unix nyert :) Az optmizer alacsony szinten sok mindent megold helyetted de ha meges szinten írod a programot és számít a sebesség, könnyedés át fogod látni melyik algoritmus, melyik megoldás fog hatékonyabban működni és miért. Azt is könnyen át fogod látni hogy mi fog problémát okozni akár több szálas rendszereknél. Még a CPU utasítások egy része sem atomi utasítások, így amivel sokan nem foglalkoznak magas szinten mert "kicsi" az esély hogy problémát okozzon, az általában nagy bugok forrása lehet.
2016. jún. 6. 10:28
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:
100%

Én nagyon sokat programoztam Assembly-ben. Minél többet megtudtam róla, annál jobban érdekelt.


...és ez a lényeg, ha érdekel valami, azzal kell foglalkozni, bár ezt a mai világban sokan figyelmen kívül hagyják.


Hogy őszinte legyek az Assembly sokkal-sokkal jobban lenyűgözött a maga "egyszerűségével", mint pl a Java az agyonbonyolított mindenrehasználhatóságával... :-) (pl. a Java az ember számára jól érthető, több ezer és kilométer hosszú eljárás-elnevezési konvenciójával szemben az Assembly-ben van egy utasítás (mnemonik) lista, amit kreatívan pakolgathatsz.)


Bármit meg lehet vele csinálni, és ahogy az előttem szólók is írták, általa mégjobban megismerheted hogyan működik a számítógép, és azon is elcsodálkozgatsz, hogy manapság miért is van szükség atomerőmű-számítógépekre, hogy alapvető dolgokat megcsinálhass vele... :-)

2016. jún. 6. 11:16
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:
Csodálatosak ezek a válaszok köszönöm! Akkor inkább mégiscsak az assemblyt tanulmányozom a gépi kód helyett.
2016. jún. 6. 13:26

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!