Les interruptions :(

Signaler
Messages postés
236
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
18 juillet 2006
-
Messages postés
59
Date d'inscription
dimanche 15 décembre 2002
Statut
Membre
Dernière intervention
2 juin 2004
-
Salut tt le monde..

J'ai un petit probleme avec les interruptions.
J'explique en quelques mots ce que j'essai de faire :

J'aimerai tt simplement decrementer le contenu du registre Ax et decrementer ce nombre a chaque interruptions de l'horloge. j'utilise masm615

mon code ci-dessous !!
Queulqu' un aurait une idee.. !?

Merci d'avance ;)

DELAY PROC NEAR

;ne pas deranger
; STI

;remplacer la sous procedure 1C
mov di,0
mov es,di
mov di,112

push es:[di]
push es:[di+2]

mov word ptr es:[di],offset autre
mov word ptr es:[di+2],seg autre

call putdec
call newline
boucle:
call putdec
call newline
cmp ax,0
jl boucle

mov di,0
mov es,di
mov di,112
pop es:[di+2]
pop es:[di]

RET

DELAY ENDP

AUTRE PROC NEAR

STI
DEC AX
IRET

AUTRE ENDP

Yafuka ( * _ * ) 8-)

1 réponse

Messages postés
59
Date d'inscription
dimanche 15 décembre 2002
Statut
Membre
Dernière intervention
2 juin 2004

Il est fortement conseillé d'utilisé l'int 21h pour changer un vecteur d'int et il fortement deconseillé de changer les reg dans une int issu d'un irq (la proc 1Cpeut se derouler lors d'une autre int d'irq tel que port serie ou autre)

sinon si ta pa peur de faire un truc non fiable, g l'impression que tu confond cli et sti
-cli clear interrupt flag : pas d'int d'irq
-sti set interrupt flag : autorisation

a mon avis il y a d'autre maniere pour faire la meme chose mais en plus fiable...
ca commence par utilisé un mot memoire plutot qu'un GPR pour servir de lien entre tes deux proc

BonDev'
ps: masm et un avatar tres linuxien... ya qqch ki kol pa...lol