Bonjour,
j'aimerais savoir si on peut programmer les flags du registre d'état, c'est-à-dire programmer le ZF et Carry etc...
Merci d'avance.
Bonjour,
j'aimerais savoir si on peut programmer les flags du registre d'état, c'est-à-dire programmer le ZF et Carry etc...
Merci d'avance.
Bonjour,
On peut directement changer le contenu du registre de drapeaux (EFLAG) soit en l'extrayant et en changeant le(s) bit(s) souhaité(s) et en le remettant en place, soit en utilisant des instructions qui influent directement sur un bit particulier.
Pour extraire le contenu d'EFLAG et le remettre en place on dispose des instructions suivantes :
Un exemple (avec EFLAG = 0x247 ; donc CF = 1):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 LAHF, SAHF, PUSHF, PUSHFD, POPF, et POPFD.
EFLAG = 0x246 ; donc Carry Flag = 0
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 PUSHFD ; pousse EFLAG sur la pile POP EAX ; EAX = EFLAG = 0x247 AND EAX, 3FEh ; (soit en binaire = 1111111110) => on ne garde pas CF. EAX = 0x246 PUSH EAX ; eax (0x246) sur la pile. POPFD ; "pop" le double mot sur la pile et remplace EFLAG (EFLAG = 0x246)
Pour les instructions affectant un drapeau en particulier on a :
Et... je crois que c'est tout, mais je ne suis pas sûr...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 CF (Carry Flag) : STC, CLC, et CMC (et BT, BTS, BTR, BTC qui écrivent sur le CF) DF (Direction Flag): STD et CLD
Voilà j'espère que ça répond à ta question. N'hésites pas si tu souhaites plus d'infos.
Bonjour,
je tiens a te remercier pour ces détails, j'apprécie beaucoup, et je dirais que pour le moment ça répond à mes besoins car c'était juste des questions que je me posais car je debute dans ce langage, c'est pour réunir un ensemble de données avant de commencer a programmer.
Je ne veux pas aussi abuser de ton temps, seulement si tu connais un bon site là où je pourrais m'inspirer de quelques codes et exemples, ça serait vraiment sympa de ta part.
Merci d'avance.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager