gdb : voir l'état des flags ? - ASM - Programmation
Marsh Posté le 26-05-2005 à 11:55:01
Soit tu fais un
Code :
|
et tu testes eax ensuite, soit tu utilise LAHF, qui place dans AH les flags SF,ZF,AF,PF et CF de cette facon :
AH <-- SF:ZF:0:AF:0:PF:1:CF |
Sinon bien sûr il y a toutes les instructions de saut, mais j'imagine que ce n'est pas ce que tu cherches.
Marsh Posté le 26-05-2005 à 13:05:51
parfait, j'avais pas pensé à copier l'état des flags sur la pile pour bidouiller, merci
Marsh Posté le 31-05-2005 à 00:50:34
Excusez moi...
Citation : PUSHFD |
Pourquoi ça marche ???
Ca voudrait dire que si je fais :
PUSH EBX
POP EAX
alors EAX = EBX
Ou bien ?
Marsh Posté le 31-05-2005 à 11:06:01
theredled a écrit : |
En effet
PUSH EBX, ca revient a faire
Code :
|
et POP EAX:
Code :
|
(A noter que ce n'est pas tout à fait équivalent puisque PUSH et POP ne sont pas limités au regsitres)
Marsh Posté le 31-05-2005 à 12:31:39
Bonjour
push ebx est plutôt équivalent à
sub esp, 4
mov [esp], ebx
pop eax est plutôt équivalent à
mov eax, [esp]
add esp, 4
sauf macro sur DEC ou INC le fait de déplacer le pointeur de pile d'un octet quand on déplace des mots de 4 octets risque d'avoir des effets surprenants.
à noter que le fait de mettre eax ou ebx sous entend que l'on manipule des 32 bits. Dans un assembleur évolué (nasm), il n'y a pas besoin de préciser la taille à enregistrer le (DWord Ptr)
Marsh Posté le 31-05-2005 à 13:14:42
db__ a écrit : Bonjour |
heu.. ooops Ca m'apprendra à répondre à des questions au révéil moi
db__ a écrit : |
Je précise toujours la taille par habitude.
En syntaxe RosAsm c'est obligatoire, et on gagne en lisibilité la plupart du temps.
Ceci dit c'est quand même plus léger:
Code :
|
Marsh Posté le 20-05-2005 à 14:52:44
Bonjour,
Je fais des essais en asm avec nasm sous Linux, j'ai trouvé comment voir le contenu des registre lors d'un breakpoint, mais est-il possible de voir l'état des flags ? (armé ou non)
merci