Mistä kannattaa aloittaa Assemblyn (x86) opetteleminen? Ajattelin tehdä pienen ohjelman, joka lukee hardwarepuolen juttuja, enkä löytänyt kelvollista kirjastoa c++:lle. Assemblyllähän onnistuu mikä vain mikä tietokoneelle mahdollista on, eikö?
Ja turha sanoa että se on vaikea kieli, en kuitenkaan kuuntele :)
KoodiNoppa kirjoitti:
Assemblyllähän onnistuu mikä vain mikä tietokoneelle mahdollista on, eikö?
No ei nyt aivan. Käyttöjärjestelmät (esim. Windows ja Linux) käyttävät prosessoria "protected modessa". Tämän takia/ansiosta ohjelmat eivät voi tehdä mitä lystäävät.
En nyt ihan tiedä mitä tarkoitat noilla "hardwarepuolen jutuilla", mutta eiköhän niille löydy ihan Windowssille ja Linuxille omat keinonsa.
Jos haluaa päästä alkuun nimenomaan assemblyssä, miksi se pitää tehdä x86 ? Se kun on imo yksi vammaisimmista assemblyistä mitä on. Kokeile vaikka jotain kivaa RISC prosua tai wanhaa 68K. Samat ASSEMBLY periaatteet kyllä oppii kaikissa ympäristöissä, tosin muissa kun x86 voi alkaa karsastaa sen omistamia outouksia.
KoodiNoppa kirjoitti:
Mistä kannattaa aloittaa Assemblyn (x86) opetteleminen?
Tässä on hyvä opas alkulukemiseksi: http://www.magacrew.net/jso/asmqrssi.zip
Jos löydät kirjastosta kirjan "Inside Assembler", siinä on myös ihan hyvää tietoa.
Myöhemmin tästä sivustosta on paljon apua: http://heim.ifi.uio.no/~stanisls/helppc/
KoodiNoppa kirjoitti:
Assemblyllähän onnistuu mikä vain mikä tietokoneelle mahdollista on, eikö?
Ainakin niin, että jos jotain ei voi tehdä assemblyllä, niin sitä ei voi tehdä muillakaan ohjelmointikielillä. Tämä johtuu siitä, että assembly vastaa suoraan tietokoneen konekieltä, ja muilla kielillä laaditut ohjelmat täytyy kääntää konekielelle, ennen kuin ne voi suorittaa.
KoodiNoppa kirjoitti:
Ja turha sanoa että se on vaikea kieli, en kuitenkaan kuuntele :)
Assemblyn komennot ovat hyvin yksinkertaisia, mutta vaikeus piilee siinä, että korkeamman tason kielen (esim. C++) yksi komento voi kätkeä sisälleen kymmeniä assemblyn komentoja. Aluksi voi tuntua siltä, että assemblyn komennot ovat niin tavattoman yksinkertaisia, että niillä ei saa aikaan mitään kunnollista.
Ne "hardwarepuolen jutut" sisältää kaikki usb- ja muut liitännät, levyasemat yms. mihin ei c++:lla pääse ilman niihin tarkoitettuja kirjastoja.
x86 tuli vain ensimmäisenä mieleen kun lähes kaikki tietokoneet on x86-pohjaisia :)
Tota Inside Assembler-kirjaa voisi joku päivä kirjastosta katsoa...
KoodiNoppa kirjoitti:
x86 tuli vain ensimmäisenä mieleen kun lähes kaikki tietokoneet on x86-pohjaisia :)
Tähän sopiikin hyvin pari viidakon uutta sananlaskua:
1) Vaikka miljoona kärpästä tykkää paskasta, ei se silti ole hyvää
2) Älä korjaa sitä, mikä toimii (mistä saat rahaa)
Näistä yhdistettynä tulee: kannattaa opiskella x86 assya, jos siitä saa PALJON rahaa.
KoodiNoppa kirjoitti:
Tota Inside Assembler-kirjaa voisi joku päivä kirjastosta katsoa...
Lainaa samalla jonkun mun CPU:n Assembler kuin x86 kirja. Ihmettele :)
KoodiNoppa kirjoitti:
Ne "hardwarepuolen jutut" sisältää kaikki usb- ja muut liitännät, levyasemat yms. mihin ei c++:lla pääse ilman niihin tarkoitettuja kirjastoja.
Mikset vain etsi niihin tarkoitettua kirjastoa varmasti on olemassa.
Asmaajat kokevat jossain vaiheessa vailaistuksen, eivätkä enään sen jälkeen tarvitse mitään pääkopan ulkopuolella syntynyttä koodia.
Moikka KoodiNoppa!
Kaikista mielenkiintoisin asmi on ehdottomasti MMIX-prosessorin asmi. ;-)
Aihe on jo aika vanha, joten et voi enää vastata siihen.