begin process at 2012 02 08 21:37:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Assembleur

 > 

Archives

 > 

Newbii

 > 

Cycles de mov


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Cycles de mov

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ée 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 out bmp [ par vincent2795 ] Bonjour, dans ma source, j' essaye de faire un screenshot, et de le nommer pas la date et l' heure ou il es pris. mon problème: si le nom du fichier e inverser une chaine [ par MrdJack ] salut, je suis sur un projet de calculatrice me permettant de faire des calculs avec des nombres tres grands. chaque nombre est stocké dans la memoire Désassemblage code C, je ne pige pas !! [ par bouba ] Bonjour, je suis en train d'essayer de voir ce qui se passe derrière un code en C, mais la je bloque dès les trois premières lignes, j'ai donc testé a nombre premier en nasm [ par YAWLY ] MED.MERZOUG salut tout le monde vous pouvez m'aider si j le compile sa affiche chaque fois le nbr est non premeir > le code est : Section .date ch mon code ne marche pas [ par mohoguess ] Bonjour a tous,je suis débutant en asembleur, et j'ai écrit un code qui sert a additionner le chiffre 1 jusqu'à 999999 fois (mon code ne sert à rien j


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,310 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales