Les interruptions :(

yafuka Messages postés 236 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 18 juillet 2006 - 15 mars 2004 à 22:30
TangiX Messages postés 59 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 2 juin 2004 - 16 mars 2004 à 14:27
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

TangiX Messages postés 59 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 2 juin 2004
16 mars 2004 à 14:27
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
0
Rejoignez-nous