Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Assembly: MASM32 ja epäsuora osoitus brobleemi

tomas [06.02.2009 19:32:09]

#

Hello, tässä keltanokkana ihmetyttää taas eri jutut.Ei tunnu epäsuora osoitteenmuodostus toimia tahdotulla tavalla
MASM32:ssa.
Käsky ADD EAX, [1245092] (dec) antaa saman tuloksen rekisteriin kuin käsky
ADD EAX, 1245092.
Vaikka ensimmäinen onkin epäsuora ja sen pitäisi osoitteesta 1245092
siirtää luku rekisteriin.
Kummassakin tapauksessa EAX:ssa debuggauksen jälkeen on luku 1245092, vaikka
muistiosoitteessa 1245092 on nolla. Vai pitäiskö noitten hakasulkeitten eteen lykätä joku symboli?
Tällä ei ole mulle mitään ohjelmallista merkitystä, mutta hämää vaan pirusti.
Jotain on tainnut jäädä meikältä tajuamatta. Jos joku osaa selvittää niin
kiitokset.

Deffi [06.02.2009 22:28:34]

#

Joop, MASMilla on tapana käsitellä hakasulkeita eri tavalla eri tilanteissa (aika hyi). Saat toivotun lopputuloksen vääntämällä rautalangasta: ADD EAX, DWORD PTR DS:[1245092], muuten MASM tosiaan assembloi rivin käskyksi ADD EAX, 1245092. Suosittelen debuggaamaan jollain tarpeeksi matalan tason debuggerilla, kuten ollydbg:llä. Suht helppokäyttöinen ja sanoinkuvaamaton apu varsinkin assemblyllä koodatessa. Eikä assemblerin vaihtaminen vaikka FASMiin pahaa tekisi...

jalski [06.02.2009 23:22:43]

#

Open Watcom paketin mukana tuleva wasm on myös ihan käypä assembleri, jota olen käyttänyt OS/2 -ja dos-ohjelmia vääntäessäni. En ole käyttänyt wasm:ia vähään aikaan, joten en muista miten se käyttäytyy esittämässäsi tilanteessa.

Jos olet aloittelija assemblerin kanssa, niin alla on näytillä yksi ensimmäisiä ohjelmiani. Siitä voi olla jotain hupia, vaikka ei ehkä niin kaunis olekaan.

http://www.tip9ug.jp/who/jalih/asm_anim.zip

tomas [09.02.2009 19:49:42]

#

Deffi kirjoitti:

Joop, MASMilla on tapana käsitellä hakasulkeita eri tavalla eri tilanteissa (aika hyi). Saat toivotun lopputuloksen vääntämällä rautalangasta: ADD EAX, DWORD PTR DS:[1245092], muuten MASM tosiaan assembloi rivin käskyksi ADD EAX, 1245092. Suosittelen debuggaamaan jollain tarpeeksi matalan tason debuggerilla, kuten ollydbg:llä. Suht helppokäyttöinen ja sanoinkuvaamaton apu varsinkin assemblyllä koodatessa. Eikä assemblerin vaihtaminen vaikka FASMiin pahaa tekisi...

Kiitti, noinhan se meneekin.Tolla MASM:lla ajattelin alotella kun oli tarjolla simppelinoloinen IDE siihen.Winasm nimeltään. Mutta löytyi Tuollainenkin kuin Goasm ja siihenkin selkeäntuntuinen IDE. Mitäs olet tuosta Goasm:sta mieltä?

Testasin myös NASMia ja siihen IDEnä RADASMia mutta toi Radasm on tälläiselle aloittelijalle liian vaikean tuntuinen. Mainio apuväline tuo Ollydbg tosiaan.

Vastaus

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

Tietoa sivustosta