Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Cycles de mov [ Archives / Newbii ] (vecchio56)

mercredi 15 septembre 2004 à 12:54:58 | Cycles de mov

vecchio56

Administrateur CodeS-SourceS
Je me demandais si les instructions suivantes étaient équivalentes en termes de performances, ou si certaines d'entres elles demandaient plus de cycles:
[code]
mov eax, edx
mov eax, dword ptr[esi]
mov eax, dword ptr[esi + 4]
[code]
Merci de m'éclairer, car cela me semble bizarre notamment de les 2 dernières prennent le même nombre de cycles...
AU fait, j'aimerais aussi savoir où on peut connaitre le nombre de cycles d'une instruction donnée, car cela ne semble as apparaitre dans ces chers manuel d'Intel.

mercredi 15 septembre 2004 à 13:09:44 | Re : Cycles de mov

patatalo

Membre Club Administrateur CodeS-SourceS
salut,

tout est indiqué dans le manuel intel dont voici un extrait pour l'instruction mov:

Opcode|Instruction|Clocks|Description
88/r|MOV r/m8,r8|2/2|Move byte register to r/m byte
89/r|MOV r/m16,r16|2/2|Move word register to r/m word
89/r|MOV r/m32,r32|2/2|Move dword register to r/m dword
8A/r|MOV r8,r/m8|2/4|Move r/m byte to byte register
8B/r|MOV r16,r/m16|2/4|Move r/m word to word register
...

r,r16,r32 sont les registres généraux.
m8,m16,m32 sont les acces memoire.
c8,c16,c32 sont les constantes.

le nombre de clocks est indiqué dans le manuel.
la methode de calcul des clocks, pour chaque instruction est donné précisement.

@++

lundi 20 septembre 2004 à 09:52:12 | Re : Cycles de mov

patatalo

Membre Club Administrateur CodeS-SourceS

re,

c'est incomplet, regarde ce chapitre aussi: 17.2.2.3 Clocks

@++

mardi 23 novembre 2004 à 13:53:27 | Re : Cycles de mov

CoreBreaker

C'est normal

déjà un mov de registre à registre (
mov eax, edx
) sera plus rapide qu'un mov reg/mem car dans ce cas il faudra un cycle de bus pour aller checher l'opérande en mémoire contrairement aux registres qui sont internes au processeur.

Maintenant pour la diff entre les 2 dernières, il y a peut de différences car il me semble qu'un
mov eax, [esi]
est traité comme un
mov eax, [esi+0]


Core Breaker



Cette discussion est classé dans : code, mov, dword, cycles, eax


Répondre à ce message

Sujets en rapport avec ce message

Mov mem immediat, immediat [ par Erkson ] Bonjour à tous.J'utilise un Pentium II PC, Windows ME, et un debuggeur qui a un assembleur intégré. Lorsque je veux modifier le programme que je debug BeginPaint code débutant [ par TRAX44 ] Bonjour, le problème est tout simple je comprends absolument pas ce qui marche pas. Le "programme" est censé créer une fenêtre est afficher du texte e LecteurEstDvd asm inline [ par AlexMAN ] Bonjour, Voila j'ai un ptit pb au nivo, je pense, de l'appel de la fonction DeviceIoControl, le code : //Fonction Cint __stdcall LecteurEstDvd(char *p optimisation [ par sajid_morad ] salut tout le monde , j ai une parti du code en c++, que j ai voulu optimiser , le l ai reécri en asm , mai ça donne pas grand chose, si quelqu un po AT&T erreur de compilation etc... [ par maminovadu75 ] Bonjour, j'aimerais me mettre a l'assembleur mais j'ai quelque problème.voici mon code morceau de code pour trier un tableau de int : ( mélange de C/C declaration externe + news Kmdkit [ par patatalo ] salut, du nouveau pour les fondus de ring 0 sous NT: http://www.website.masmforum.com/tutorials/kmdtute/ ( kmd = kernel mode drivers ) avec masm32, exception 13 lors du scan memoire haute [ par patatalo ] salut, pourquoi ce code de detection de memoire en mode 32 bits sans paging me donne une exception 13 sur certaines cartes meres ( ASUS ) a l'adresse afficher une image jpeg avec la fonction StretchDIBits ? [ par mitch19 ] bonjour, j'essaye depuis quelques temps d'afficher une image jpeg avecla commande  StretchDIBits, en vain ! mon programme plante lamentablement !Si qu j'ai un prob avec mon buffer ; ya pas d'amuses gueules (masm32) [ par papiboff ] bj si je mets le buffer "somme " en dd avec charge eax et que j'ajoute deux 'dec ebx ' , ben , marche pas correctement ; (pêrqué ???? = en french) sv A l'aide... svp [ par monitor100 ] Bonjour a tous,Je suis completement null en assembler, et il faut que je fasse afficher le résultat de la factoriel de 4 soit 24.est ce que quelqu'un


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,265 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.