J'étais curieux de savoir comment GDB détermine si une valeur est signée ou non signée. J'ai créé un petit programme qui stocke une valeur négative signée dans eax. Je l'ai exécuté à travers le débogueur, et j'ai remarqué qu'il interprète la valeur à eax pour être négatif. Comment est-ce ainsi? J'ai également essayé ceci sans générer d'informations de débogage. Voici mon programme court:Comment GDB sait-il si une valeur est signée?
section .text
global _start
_start:
nop
mov eax, [doubleWord]
mov ebx, 0
mov eax, 1
int 0x80
section .data
doubleWord dd -52
Dépend de la manière dont vous l'avez imprimée. Le 'd' (décimal) et' f' (float) est signé, le reste, y compris 'u' et' x' sont non signés. – Jester
Vous lui dites comment interpréter la valeur (il n'y a aucun moyen de dire à partir des bits eux-mêmes). – Ped7g
bonne chance, que se passe-t-il lorsque vous utilisez un fichier non signé ou un fichier flottant, est-ce qu'il devine ce droit ou simplement en fait un nombre signé décimal? (Ma conjecture est la dernière) –