Cours architecture et assembleur

Cours architecture et assembleur, tutoriel & guide de travaux pratiques en pdf.

Mode d’adressage

Les operandes peuvent avoir les types suivants :
adressage direct : l’operande est une adresse (32 bits) en memoire. designe toujours le m^eme emplacement, mais la valeur correspondante peut changer (ex : variable globale) Exemple : mov eax, [0x0000f13a]
adressage par registre : l’operande est un registre.
mode le plus courant (+ e cace)
Exemple : mov eax, ebx
adressage indirect par registre : l’operande une adresse memoire contenue dans un registre (qui sert de pointeur)
Exemples : mov eax, [esp] (eax sommet de la pile)
! ! mov eax, esp (eax adresse du sommet)
adressage index : l’operande une adresse memoire contenue dans un registre associee a un decalage
Exemple : mov eax, [esp+4]

Instructions x86
Grandes categories d’operations :
Operations de transfert :
entre la memoire et les registres ; operations sur la pile.
Operations arithmetiques
Operations logiques
Operations de decalage et rotation multiplications et divisions rapides
Operations de branchement
sauts, boucles, appels de fonctions
Operations sur les cha^nes de caracteres

Instructions de transfert
B Copie de donnees entre memoire et registres : mov
Le 1er argument est toujours la destination et le 2nd la source
Restriction sur le type d’operandes :
mov registre, memoire
mov memoire, registre
mov registre, registre (registres de m^eme taille !)
mov type memoire, immediate (type=byte, word, dword)
mov registre, immediate
mov memoire, memoire impossible ! !
B Instruction speciale pour echanger les contenus de 2 registres ou d’un registre et d’une case memoire : xchg
Exemples : xchg eax, ebx
xchg eax, [0xbgfffeedc]

Instructions de transfert (suite)
B Operations de pile : push et pop adressage immediat ou par registre Exemples : push eax
pop ebx
! ! la pile est a l’envers :
si esp est l’adresse du sommet de la pile, alors l’element en dessous est [esp+4]

Instructions arithmetiques
B Addition entiere (en cplt a 2) : add
2 operandes : destination et source : valeurs, registres ou memoire (au moins 1 reg.)
positionne les FLAGS : Carry (CF) et Over ow (OF)
Exemples : add ah, bl
add ax, bl operandes imcompatibles !
B Addition avec retenue : adc
additionne les 2 operandes et la retenue positionnee dans CF
Exemple : adc eax, ebx (eax eax+ebx+CF)
B Multiplication entiere positive : mul
1 seule operande : multiplication par eax
le resultat est stocke dans deux registres : edx pour les bits de poids fort et eax pour les bits de poids faible
Exemple : mul ebx (edx|eax eax ebx)

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *