Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Assembly: ASM onko välilyöntiä painettu luuppi ?

hsimola [13.02.2004 19:17:39]

#

@sss:
      	in al,60h
      	and al,80h
      	je @ende      // jos portti ei toimi niin näppäimen painallus lopettaa

        in al,dx
        shr al,5
        jnc @sss       // lue uudestaan, jos tila on 0

Miten ASM:lla tsekataan onko esim. välilyöntiä painettu (yllä oleva koodi tsekkaa kaikkia näppäimiä) ? Miten tuo pitäisi muuttaa ?

thefox [21.02.2004 00:29:29]

#

Kuten moni (QB) näppisesimerkki koodivinkeissä selvittää, palauttaa portti 60h näppäimen tilan niin, että jos arvo > 128, on näppäin 'arvo - 128' nostettu, muuten näppäin 'arvo' on painettu. Eli siis tuota vois muuttaa niin että muuttaa tuon "and al,80h" jotakuinkin muotoon "cmp al, (57+128)" (spacebarin scan-koodi on 57). Heitin tuon nyt vähän mutu pohjalta että ilmoittele ihmeessä jos ei toimi :)

hsimola [21.02.2004 11:31:55]

#

Kitos. Tässä kans koodi joka pelaa :

@sss:
in al,60h
cmp al,39h
je @ende // space pressed.

thefox [22.02.2004 01:05:44]

#

Juu, toi tosiaan ilmeisesti havaitsee sen näppäimen painalluksen, jos pistät B9h (57+128), havaitsee se näppäimen vapautuksen.

Vastaus

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

Tietoa sivustosta