Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Assembly: Assemblystä

Sivun loppuun

CoDeR [11.10.2005 16:40:21]

#

Elikkäs haluaisin alkaa harjoittelemaan assembly ohjelmointia, ja tässä olisi muutama kysymys liittyen asiaan:

1. Onko saatavilla suomen kielisiä assembly kirjoja? jos on niin minkä nimisiä? (ei sillä ettei englanti sujuisi mutta kun uusi asia ja aika lailla asiatekstiä niin olis helpompi lukea aluksi suomeks.

2. Käsittääkseni tarvitsen myös kääntäjän? Minkä niminen olisi käyttökelpoinen?

3. Kannattaako aluksi vaan päntätä tietoa kalloonsa vai esim. lukea aina vähän ja sitten kokeilla vähän käytännössä?

4. Ja niin joo.... melko oleellinen kysymys; Millä sitä sitten koodataan? (muistio -> kääntö ?)

Ja kyllä, olen etsiskellyt myös haulla, mutta kysyn nyt vielä epäselvyyksien poistamiseksi.

....Tässäpä nämä nyt tällä hetkellä. Kiitoksia avusta jo etukäteen.

Metabolix [11.10.2005 16:52:26]

#

1. On. Kannattaa etsiä kirjastosta. Joku 486-ohjelmointi tjsp.
2. NASM on aika käytetty. Jokin prosessoriemulaattorikaan ei ole paha idea kokeiluja varten.
3. No ASMia on vähän paha kokeilla käytännössä. Ehkäpä jos hankit jonkin muun kääntäjän ja kokeilet inline-assemblyllä, mutta siinä ei kyllä pääse kovin edistyneisiin asioihin.
4. Juurikin niin, mutta onhan niitä helpottaviakin editoreita olemassa.

squid [11.10.2005 17:06:44]

#

4. Aika moni editori tukee ASMin syntaxia jo valmiiksi(Notepad++)... eli kaipa semmoinen olisi aika hyvä:)

CoDeR [12.10.2005 15:11:18]

#

Joo. Kävin hakemassa ton NAMS:in. Ne filutko pitää tunkea johonkin ja sitten kääntäminen tapahtuu komentokehotteesta tai jotain, vai miten?

_Pete_ [12.10.2005 15:40:40]

#

CoDeR kirjoitti:

Elikkäs haluaisin alkaa harjoittelemaan assembly ohjelmointia, ja tässä olisi muutama kysymys liittyen asiaan:

Jos tarkotuksena on perehtyä assemblyyn yleensä, kannattaa harkita jonkun muun kuin sekasotku x86 assemblerin opettelemista aluksi. Kun idea on selventynyt voi x86 sekasotku assemblerikin aueta helpommin (tai sitten vaan tulla sellainen olo, että siihen ei halua koskeakkaan kun parempaakin on olemassa) :)

tgunner [12.10.2005 15:57:44]

#

CoDeR kirjoitti:

2. Käsittääkseni tarvitsen myös kääntäjän? Minkä niminen olisi käyttökelpoinen?

Eikös Assenpyllyä TULKATA, eikä käännetä?

(Pilkunviilauskohtaus)

Blaze [12.10.2005 16:20:33]

#

Ei, vaan nimenomaan käännetään (symbolisesta konekielestä konekielelle).

Krisu [12.10.2005 16:30:27]

#

1. Kirjahyllyssäni on kirja nimeltä Inside Assember. Kirja ei ole mikään erityisen uusi ja se käsitteleekin ainoastaan reaalimoodia (ok... siellä muistaakseni oli muutama viittaus suojattuun moodiin. Cd:llä taisi olla jopa esimerkki suojatun moodin käytöstä) ja dossia. Tärkeintähän kuitenkin on ymmärtää idea siitä miten homma toimii, joten kyllä tuo harjoitteluun kelpaa hyvin :)
2. Kyllä... kääntäjän tarvitset. Nasm on kiva (TGunnerille: Kyllä assemblyä (=symbolista konekieltä) käännetään konekieleen, jota sitten suoritetaan prosessorissa).
3. Luet perusjutut, etsit netistä esimerkin ja opettelet ymmärtämään miten ohjelma toimii. Sitten muokkaat ja katsot mitä tapahtuu (aina vain parempi jos ymmärrät mitä muutoksesi pitäisi tehdä :). Sitten siitä siirryt tekemään tyhjältä pöydältä jonkin pienen ohjelman.
4. Ei sillä editorilla merkitystä ole

Itselläni on projektihakemisto, jossa alahakemisto tools. Sitten projektihakemistossa jokaiselle projektille oma hakemisto, jossa on build.bat (sisällöksi vaikka ..\tools\nasm.exe project.asm -o project.com) kääntämistä helpottamaan (Linuxissa kääntämistä varten vastaava skripti build.sh).
Eli tällöin tiedostot olisi seuraavasti:
Projektit\tools\nasm.exe
Projektit\hello\hello.asm
Projektit\hello\hello.com
Projektit\hello\build.bat

CoDeR [12.10.2005 17:30:01]

#

Joo kiitti krisu :).

riittäkö tohon battiin toi "\tools\nasm.exe project.asm -o project.com" vai pitäskö siihen laittaa koko polku?

ja mikä tuo .com filu on? ....niin ja miten itseasiassa se kääntö sitten tapahtuu? (jos on nuo kansiot ja tiedostot edellämainitulla tavalla?)

panttu [12.10.2005 21:52:01]

#

.com on "vanha" suoritettavan teidoston muoto, jossa on muistaakseni 64kt muisti rajoitus, eli .exe korvaa tuon .comin nykyisin ainakin melkousein. Joitan ajureita on .com muodossa yksinkertaisuuden takia olemassa.

PS. DOS ei tunnista .exe:ä ja .com:a tunnisteen perusteella vaan sisällön.

Mureakuhan wikissä on pari asm opasta
http://wiki.mureakuha.com/wiki/Etusivu#Assembly

Krisu [12.10.2005 23:31:20]

#

Kääntäminen tapahtuu siis ajamalla tuo .bat tiedosto vaikka komentokehotteessa (huomoi, että sisältönä tulee olla ..\tools\ jne.jne., eikä pelkkä \tools\jne.jne. riitä). Voithan toki myös kirjoittaa lähdekoodin samaan hakemistoon tuon nasm.exe:n kanssa, jolloin sitten komentokehotteessa menet hakemistoon jossa nasm on, ja kirjoitat "nasm projekti.asm -o projekti.com".

Hieman epäselvä selitys, mutta uskoisin sen olevan vielä ymmärrettävissä :-)

Jyri [13.10.2005 11:50:54]

#

Onko Linuxiin olemassa asmi kääntäjää? Tai siis ennemminkin miten se toimii? :P

Blaze [13.10.2005 11:59:31]

#

man nasm

Linkku [14.10.2005 14:44:38]

#

Blaze kirjoitti:

man nasm

Jos nyt Blazeillaan vähän: "No manual entry for nasm".

Mutta kuitenkin apt-get install nasm, jossa tulee mukana myös edellämainittu manuaalisivu.

Metabolix [14.10.2005 16:38:52]

#

Linkku kirjoitti:

apt-get install nasm

No Blazeillaan vielä vähän: "bash: apt-get: command not found"
Distrosta riippuen, jollakin se kuitenkin löytyy. Lähdekoodit saa kyllä NASMin projektisivulta. http://sourceforge.net/projects/nasm


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta