cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 17 juil. 2004 à 22:26
oula, g dit une betise : il y en a bien 9 mais ce n'est pas st(0) ki est reservé, il y a simplement un registre de flag ki permet de notifier toutes divisions par zero, overflows...etc, dsl pour l'erreur
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 17 juil. 2004 à 22:34
Je suis vraiment dans les choux, j'avais tout bon sauf que au debut j'excluais les nbr impairs, la senilite.....
Donc dispo.
Pour info, je ne me sers que des 3 registres generaux, rien a sauvegarder.
Vous pouvez adresser de st(0) jusque st(7).
ciao...
BruNews, Admin CS, MVP Visual C++
Vous n’avez pas trouvé la réponse que vous recherchez ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 17 juil. 2004 à 22:42
N'achete pas trop de livres de base qui vont t'embrouiller avec des instructions totalement obsoletes, en asm 32 bits suffit de savoir les mnemonics Intel. Tu les as d'ailleurs avec MASM32. Tout le reste est pure logique.
Pour l'optimisation faut lire Michael Abrash, le gros bouquin noir "Programmation graphique C/C++ Assembleur" est on ne peut mieux.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 17 juil. 2004 à 22:57
Si tu peux, prends celui que j'ai mis plus haut. Tout est a savoir dedans, il enumere au contraire tout ce qu'il convient d'ecarter a partir du Pentium, va tranquille c'est rien que du bon.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 17 juil. 2004 à 23:06
Meme reponse, point trop de bouquins en asm hormis les manuels Intel. Mieux vaut des books d'algo en C comme ceux de Sedgewick et ensuite si besoin on s'ecrit sa bibli en haute performance en asm.
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 17 juil. 2004 à 23:23
bon voila ton code alors (c pour le reprendre ds mes kestions)
__asm {
xor eax, eax
lea edx, [esp-12]
test ecx, ecx
ja short nbrOK
jb short sqrtExit
inc eax
ret 0
nbrOK:
mov esp, edx ; ESP -= 12
mov [edx+8], ecx ; sauve nbr
mov [edx+4], eax ; ZERO
mov [edx], ecx
fild qword ptr[edx]
nop
fsqrt
nop
fistp dword ptr[edx]
nop
pop ecx
xor edx, edx
mov eax, ecx
add esp, 4
mul ecx
test edx, edx
pop ecx ; ECX = nbr, ESP revenu
jnz short faux
cmp eax, ecx
je short sqrtExit ; sort NON ZERO pour OK
faux:
xor eax, eax
sqrtExit:
ret 0
}
- les seuls trucs ke j'ai pas compris, ce sont les "test reg, reg", je sais ke ca fait un 'et logik', enfin jvois pas le rappor, donc si tu pouvais m'expliker ce point la...
Puis ce que ji suis oci, kan tu fais un pop ecx par exemple, implicitement, il y a un "add esp, 4" ?
merci pour le code, ca n'avait rien a voir avec ce ke j'ai fait, et jme dis ke j'ai ENORMEMENT de boulot..