Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Assembly: asmin ihmeelliset muuttujanimet

Sivun loppuun

sooda [16.01.2004 20:26:19]

#

okei, vääntäkää joku nyt rautalangasta kun en kuukkelittamallakaan löytänyt. Eli tämän verran ymmärrän: AX,BX,CX,DX... on kokonaisia tavuja, AL on AX:n 4 ekaa bittiä, AH on sen 4 viimeistä bittiä. Entäs sitten esim nämä: CF,ES:BX,SI,DI ym...?

Antti Laaksonen [16.01.2004 23:57:32]

#

Ensinnäkään nyt ei ole kyse muuttujista vaan rekistereistä. AX, BX, CX ja DX ovat kukin 16 bitin eli kahden tavun kokoisia. AH on AX:n neljä ensimmäistä bittiä (eniten merkitsevät bitit) ja AL on AX:n neljä viimeistä bittiä (vähiten merkitsevät bitit). AH:n ja AL:n koko on 8 bittiä eli 1 tavu. Sama pätee BX-, CX- ja DX-rekistereihin.

ES, SI ja DI ovat osoiterekistereitä. DOSissa muistiosoite muodostuu segmentistä ja siirroksesta. ES on eräs segmenttirekisteri ja siirros voi olla mm. SI- ja DI-rekistereissä. CF kuuluu eri sarjaan edellisten kanssa, sillä se on lippurekisterissä oleva muistilippu. Tarkempi selitys on mahdotonta, hanki jostain kunnollinen assembly-opas. ;)

bob [17.01.2004 09:41:36]

#

muuttujia ei ole olemassakaan... on vain muistia ja lisää muistia

kurz [22.01.2004 18:03:18]

#

.. ja muuttujat vain tapa osoittaa paikkaa muistissa

sooda [22.01.2004 18:07:53]

#

siis miten qb:ssä voi noita essiä ja ditä käsitellä kun o regtype tai regtypex? muuten selkis...

TYPE RegType
     ax    AS INTEGER
     bx    AS INTEGER
     cx    AS INTEGER
     dx    AS INTEGER
     bp    AS INTEGER
     si    AS INTEGER
     di    AS INTEGER
     flags AS INTEGER
END TYPE
'
' Define the type needed for InterruptX
'
TYPE RegTypeX
     ax    AS INTEGER
     bx    AS INTEGER
     cx    AS INTEGER
     dx    AS INTEGER
     bp    AS INTEGER
     si    AS INTEGER
     di    AS INTEGER
     flags AS INTEGER
     ds    AS INTEGER
     es    AS INTEGER
END TYPE
'

Antti Laaksonen [22.01.2004 18:25:03]

#

No eikös tuossa jälkimmäisessä tietotyypissä ole mukana sekä ES että DI?

sooda [22.01.2004 18:27:41]

#

siis mikä cf. AIjooo oks se toi flags? nii ja toi toinen on joku "vanhempi" eli sitä ei kuulemma qb:n mukaan käytetä hirveesti ja se o ihan erilainen(kai?) :P

bob [22.01.2004 20:23:07]

#

RegType säätää perusrekistereitä ja RegTypeX säätää niiden lisäksi segmenttirekistereitä

ja joo CF on FLAGS rekisterin eka bitti

sooda [23.01.2004 11:14:01]

#

Okei tack. Nyt sujuu, kiitokset.

pellervoinen [25.01.2004 12:14:18]

#

Eikös Intelillä ole aka tavu vähiten merkitsevä ja seuraavat aina enemmän merkitseviä?

thefox [27.01.2004 09:28:01]

#

Kyllä, muistissa (little-endian, tavut käänteisessä järjestyksessä). Eli dword 0x12345678 on muistissa tavuina 0x78, 0x56, 0x34, 0x12. Mutta rekistereihin tuo ei tietenkään mitenkään vaikuta.


Sivun alkuun

Vastaus

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

Tietoa sivustosta