Asm sur ordinateur

15081 mots 61 pages
4. Initiation à l'assembleur

142

Assembleur

143

1. Introduction
Pour mieux comprendre la structure interne d'un ordinateur, nous aborderons la langage d'assemblage d'un processeur contemporain, le Pentium III d'Intel. Le but du cours n'est donc pas de faire de vous des programmeurs en assembleur. Qu'est-ce que l'assembleur ou le langage d'assemblage ? Pour obtenir une réponse à cette question, nous vous recommandons de lire à ce stade-ci le chapitre 13 du volume de Zanella et Ligier. Nous utilisons pour ce cours l'assembleur Masm32 de Microsoft disponible gratuitement sur le Web à l'adresse suivante : http:;www.pbq.com.au/home/hutch/masm.htm. Comme débogueur, nous recommandons le Enhanced Debugger d'Intel, également disponible gratuitement à l'adresse suivante : http:;developer.intel.com/vtune/compilers/cpp/demo.htm. Il est fourni avec le compilateur C/C++ 4.5 que vous pouvez utiliser avec Visual Studio de Microsoft si le cœur vous en dit. Vous pouvez également faire de l'assembleur dans le cadre d'un compilateur C/C++, comme dans Visual C/C++ de Microsoft. Dans ce cas, vous créez une fonction en C ou en C++, puis vous y insérez la commande _asm { }. Vous pouvez ensuite insérer entre les accolades autant d'instructions assembleur que vous désirez. Il faut donc déclarer la fonction comme si c'était une fonction C, puis faire la déclaration en question comme suit : long maFonction (long x) { _asm { mov eax, x somme: add eax, 4 } }

; place la valeur de x dans le registre eax ; additionne 4 à eax. ; le résultat est le contenu de eax.

Cette fonction peut ensuite être appelée par un programme principal :

Assembleur

144 void main() { long resultat; resultat = maFonction(75); } Vous remarquerez en passant la structure d'une instruction assembleur. Elle est constituée d'un opcode, par exemple mov, add, etc. et d'opérandes, par exemple, eax, x, ou 4. L'opérande de gauche est appelé opérande destination et c'est là que le résultat de l'instruction

en relation

  • Demain
    3105 mots | 13 pages
  • slimaaaa (2)
    3641 mots | 15 pages
  • Pompes funèbres
    1379 mots | 6 pages
  • Rapport de stage bts cgo
    2112 mots | 9 pages
  • Zerze
    712 mots | 3 pages
  • Rapport de stage de 3e
    5204 mots | 21 pages
  • Lexique de droit 1èere terminal
    1776 mots | 8 pages
  • Philosophie : Explication de texte Lettre de Descartes au Marquis de NewCastle
    829 mots | 4 pages
  • Sommeil et handicap
    2956 mots | 12 pages
  • Le co-branding
    1650 mots | 7 pages
  • Tpe : synthèse
    757 mots | 4 pages
  • Educ spé stage externe
    1839 mots | 8 pages
  • Td droit constitutionnel : la 3 republique
    1096 mots | 5 pages
  • allemand
    1905 mots | 8 pages
  • IFR200564
    7975 mots | 32 pages