|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : mars 2006 Messages : 51 ![]() |
Bonjour à tous , je suis entrain de tester les structure de controle avec nasm, et pour cela je m' "amuse" à faire un programme qui effectue des opérations de bases .
Le programme demande a l utilisateur d'entrer deux nombre que j'initialise au préalable avec resd 1 . ensuite je demande à l utilisateur de faire un choix entre 1 et 4 pour l’opération et selon le choix je fais un saut à la sous parti qui traite l'operation. Le problème c'est qu'un des deux nombres normalement sauvegardé en mémoire se met à zéro sans que je n y ai touché et j avoue que je n' y comprend rien,car mon autre valeur est bien conservé .Si vous avez le temps d'y jeter un coup d’œil ce serait sympa, le probleme se trouve dans bloc_addition à la ligne 125 . Code :
|
||
|
|
00
|
|
|
#2 |
![]() ![]() Chercheur d'emploi Inscription : septembre 2007 Messages : 4 639 ![]() |
Bonjour,
Ligne 41, pour « choixCalcul », tu as écrit « resb » et pas « resd ». Tu réserves donc un seul octet pour le choix de l'utilisateur, mais tu y stockes quand même EAX à la ligne 112, qui tient sur 32 bits. Les trois octets supplémentaires vont donc écraser « num1 » qui vient juste après. Comme en plus, tu travailles en little endian et que ton choix est compris entre 1 et 4 (donc toujours sur un seul octet), ces trois octets supplémentaires sont toujours nuls. Et comme le seul octet de « num1 » qui ne soit pas écrasé est l'octet de poids fort (pour les mêmes raisons), tu te retrouves avec un paramètre « num1 » toujours nul en pratique (il faudrait qu'il soit supérieur à 16.777.215 pour ne pas être totalement écrasé). |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : mars 2006 Messages : 51 ![]() |
Ah c'était donc ça je n'ai pas pensé que les variables déclarées se mettaient directement à la suite .
L'erreur de mettre EAX dans un octet était un peu énorme . Merci bcp ! |
|
|
00
|
|
|
#4 |
![]() ![]() Chercheur d'emploi Inscription : septembre 2007 Messages : 4 639 ![]() |
À ton service, mais n'oublie pas
.Je l'ai fait pour toi cette fois-ci. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com