Bonjour,
Existe t-il un moyen "simple" en C pour afficher la valeur de tous les registres
du processeur (ax, bx, etc...).
Merci
Sorry
Bonjour,
Existe t-il un moyen "simple" en C pour afficher la valeur de tous les registres
du processeur (ax, bx, etc...).
Merci
Sorry
Salut,
En fait faut que tu donnes un peu le contexte...
Sur quel OS et quel famille de processeur ? pour quoi faire, etc....
Molox
Si c'est sous Linux 2.6, c'est forcément de l'assembleur Intel 32 bits, donc EAX, EBX, etc.
Le plus simple consiste à écrire une ligne d'assembleur inline dans une fonction pour transférer le contenu d'un registre dans EAX. Tu pourras alors le retourner en tant que valeur de retour de ta fonction.
Pour tout récupérer d'un coup, le mieux, à mon avis, est un PUSHA dans la pile et un recopie octet par octet dans un buffer passé en argument.
Je suggère de bouger ce fil dans le forum Assembleur x86 32 et 64 bits.
Rien de direct en C. Ok merci je vais me depatouiller en asm.
A+
Voilà je poste mon code (pas encore vérifié), si ça interesse quelqu'un...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #include <stdio.h> int print_eax(){ __asm__("mov %eax, %eax;" ); } int print_ebx(){ __asm__("mov %ebx, %eax;" ); } int print_ecx(){ __asm__("mov %ecx, %eax;" ); } int main(){ printf("EAX : 0x%x\n",print_eax()); printf("EBX : 0x%x\n",print_ebx()); printf("ECX : 0x%x\n",print_ecx()); return 0; }
Partager