Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Assembly, QB: CALL INTERRUPT

Antti Laaksonen [24.02.2002 23:26:30]

#

Viitaten fawkz:n koodivinkkiin:

Onko mahdollista asettaa muiden rekisterien arvoja, kuin TYPE:ssä olevien, vaikkapa AL:n?

thefox [25.02.2002 17:10:48]

#

Tietysti voisi tehdä sellaisen TYPEn, jossa AL ja AH olisivat erikseen (AL AS STRING *1), mutta silloin toisaalta AX:n ei pääse niin helposti käsiksi.. no kuitenkin on muitakin mahdollisuuksia ;)
Eli esimerkki:

0) Ajatellaan vaikka, että AX=&H1234
1) Ensin maskataan AL:n tavu pois, näin: AND AX, &HFF00 (eli 00:t tyhjentyy, FF:t jää entiselleen)
2) Sitten OR:ataan haluttu tavu AL:ään, näin: OR AX, &H69
3) Nyt AX=&H1269, hiphei!

AH:n muuttaminen menee lähes samoin, eli:
0) Ajatellaan jälleen, että AX=&H1234
1) Maskataan AH:n tavu pois, näin: AND AX, &HFF
2) OR:ataan uusi AH AX:ään, näin: OR AX, &H6900
3) Nyt AX=&H6934, hiphiphurraa! :D

Toivottavasti tajusit(te) ;)

Antti Laaksonen [25.02.2002 19:23:38]

#

Tuo toimii, kiitos. Sama pätee varmaan muidenkin rekistereiden kanssa, kuin A-alkuisten.

thefox [25.02.2002 20:28:24]

#

Jep, eli pätee periaattessa jokaisen rekisterin kanssa. Mutta ei konekielessä pääse käsiksi kuin AX, BX, CX, ja DX:ään, noin niinkun kahtena palasena :)
Eli esim. SI ja DI eivät kuulu siihen joukkoon.

Vastaus

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

Tietoa sivustosta