Urgent!

cs_Nano2 Messages postés 6 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 11 janvier 2003 - 10 janv. 2003 à 23:26
cs_Nano2 Messages postés 6 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 11 janvier 2003 - 11 janv. 2003 à 16:01
Euh pourriez vous svp me dire comment placer une variable var de type DWORD dans ecx en utilisant que push et pop..

8 réponses

executter Messages postés 4 Date d'inscription mercredi 22 mai 2002 Statut Membre Dernière intervention 23 janvier 2004
11 janv. 2003 à 00:56
normalement :

push var
pop ecx

si j'ai bien compris la question.
0
cs_Nano2 Messages postés 6 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 11 janvier 2003
11 janv. 2003 à 01:44
Je pensais qu'a ca mais ca ne marche pas car je ne peux pas mettre directement var sur la pile..
0
gblade Messages postés 85 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 19 mai 2003
11 janv. 2003 à 10:15
faudrait préciser quel assembleur tu utilise car à mon avis ça vient de la syntaxe

pour MASM :

push dword ptr [var]
pop ecx

pour NASM :

push dword [var]
pop ecx

sinon je ne sais pas, je n'ai jamais eu un tel problème...
0
filter Messages postés 42 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 16 mai 2003
11 janv. 2003 à 10:26
> Je pensais qu'a ca mais ca ne marche pas car je ne peux pas
>>mettre directement var sur la pile..

Faux. Tu dois faire une faute logique qqpart parsqu'il n'y a aucun problem de faire un "push" de dword memoire.

pushd var ou push dword ptr [var]
pop ecx

est parfaitement valide(MASM syntax),
ou

push dword [var]
pop ecx

pour NASM(meme si je te coneseille d'utiliser FASM:P:P:P)
Tu peut aussi toujours forcer le push d'un dword avec "pushd" ou "push dword".A+
Filter
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gblade Messages postés 85 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 19 mai 2003
11 janv. 2003 à 12:40
il semblerait que pushd ne soit pas une instruction (d'après le Software Developer's Manual 2 d'Intel) puis apparemment ça ne marche pas sous NASM
sous NASM il est obligatoire de préciser la taille de la variable tandis que sous MASM l'assembleur garde en mémoire la taille initiale.
enfin, sous MASM, il ne faut pas oublié le PTR qui suit le type mais au contraire NASM vous mettra une erreur si vous rajoutez PTR.
0
filter Messages postés 42 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 16 mai 2003
11 janv. 2003 à 14:19
>> il semblerait que pushd ne soit pas une instruction (d'après >>le Software Developer's Manual 2 d'Intel)

J'ai le "Instruction reference" mais j'ai pas trop envie de chrch ce qui est marquer la. PUSHD EST une instruction valide.. Elle est implemente assez tard(apres le 386 ou le 486), je crois, et cela peut etre un raison d'etre eviter. Il est aussi possible(voir tres possible) qu'elle soit implmente avec un sous routine, et ne genere pas opcode particulier, ce qui permettra de ne pas etre reference dans le manuel???

>>puis apparemment ça ne marche pas sous NASM
J'ai pas donner pushd comme example pour NASM. En + il faut dire que si NASM etait tjs en developpement on aurait deja le PUSHD;o) Encore une raison de s'orienter vers FASM.

--
Filter
0
gblade Messages postés 85 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 19 mai 2003
11 janv. 2003 à 15:24
pr ce qui est de PUSHD bah moi je pense que c pas vraiment une instruction mais que c'est PUSH tt court avec un operand DWORD
enfin c cke je pense

pr ce qui ets de NASM, je sais que c'était pour MASM mais c'était un complément d'info ;)

euh FASM j'ai jamais essayé, moi c'est MASM/NASM et c'est tout ^^ t'as l'air d'aimer FASM en tt cas lol
0
cs_Nano2 Messages postés 6 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 11 janvier 2003
11 janv. 2003 à 16:01
J'utilise MASM..
0
Rejoignez-nous