Comen faire le parallele de scanf en c dans emu8086

Fermé
dina - 25 avril 2015 à 20:27
 Utilisateur anonyme - 26 avril 2015 à 16:47
Bonjour,


s'il vous plais est-ce-que vous pouvez me rependre au questio ci dessu

1 réponse

Salut, il te faudra passer par les port 0x60 et 0x64 avec in et out.
Ex:


;***************************************************************************************************************************
;=============
; keywait
; Attend qu'une touche du clavier soit préssée via le controlleur 8042 et le stocke
; dans 'al'.
; Entrée : touche_clavier
; Sotie: al
;=============
keywait:
; http://computer-engineering.org/ps2keyboard/
; Le composant 8042 est accesible via les port 0x64 et 0x60, le port 0x64 sert à envoyé des commandes vers le controlleur 8042.
; Et le port 0x60 sert à envoyer les parametres que la commande attend. Bien sur ces ports sont piloter en sortie (out).

mov al, 0xD2 ; (Write keyboard buffer) - Parameter written to input buffer as if received from keyboard.
; Les parametres sont écris sur le buffer d'entrée comme s'il le recevait
; depuis le clavier.
; Ici on envoie sur l'input buffer (port 60h) un MC (Make code)
out 0x64, al
; BreakCodes= KeyUp
; MakeCodes= KeyDown
; Scancode: |7|6|5|4|3|2|1|0|
; | |_|_|_|_|_|_|_.-->{Scancode}
; |
; |_.--> '1'= BreakCodes '0'= MakeCodes

mov al, 0x80 ; al=10000000b
out 60h, al
keyup:
call date
in al, 0x60
and al, 10000000b
jnz keyup ; Si le 8eme bit == 1 Alors sauter à keyup
Keydown:
in al, 0x60
ret

;***************************************************************************************************************************



(\___/)
(='.'=)
(")_(")

This is Bunny. Copy and paste bunny into...
...your signature to help him gain world domination
0