Document

publicité
Cours de langage d'assemblage
Dominique Warnant - Jean-Luc Collinet
Année académique 2006 - 2007

Ouvrages de référence (disponibles à la bibliothèque)
 Auto-formation à l'assembleur PC , HOFFMAN A., MicroApplication
 Assembleur x86, IRVINE K., Campus Press
 IBM PC Assembly language and Programming, ABEL P., Prentice
Hall
Cours de langage d'assemblage
Dominique Warnant - Jean-Luc Collinet
Année académique 2006 - 2007

Qu’est-ce qu’un langage d’assemblage ?
Très proche de la machine
 Propre à un processeur
 Accès à toutes les possibilités de la machine



Rapide à l’exécution
Pourquoi étudier ce langage ?
Comment fonctionne l'ordinateur ?
 La programmation "système"
 Un atout pour être précis

Plan général du cours

les concepts fondamentaux
 Représentation des informations en mémoire
 Description du processeur 8086
 Etude de quelques instructions
 Petits programmes
Systèmes de numération

V
101
Vijf
5
Five
Cinq
8 représentations différentes du nombre 5
 système de numération
Systèmes de numération
positionnels
ex.: décimal
non positionnels
ex.: romain
1000
Mille
M
Un système de numération positionnel
est caractérisé par sa base et
par le nombre de symboles
Base = valeur attribuée à 10

Système décimal
base : 10
symboles : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
4693 = 4*103 + 6*102 + 9*101 + 3*100
Système hexadécimal
base : 1016 ( = 1610 )
symboles : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
A, B, C, D, E, F
A3C16 = A16*10162 + 3*10161 + C*10160
= 10*162 + 3*161 + 12*160 = 2620
 Système binaire
base : 102 ( = 210 )
symboles : 0, 1
1012 = 12*1022 + 02*1021 + 12*1020
= 1*22 + 0*21 + 1*20 = 5

Conversion décimal  hexadécimal
5438
5424
14
E16
16
339
336
3
316
16
21
16
5
516
16
1
0
1
16
0
STOP
116
543810 = 153E16
Méthode des divisions successives par 16
Conversion décimal  binaire
149
74
37
18
9
4
2
1
0
1
0
1
0
1
0
0
1
14910 = 1001 01012
Méthode des divisions successives par 2
Conversion hexadécimal  décimal
1
*16
16
5
+
3
E
16
5
*16
336 +
3
*16
5424
+ 14
153E16 = 543810
=
543810
Conversion hexadécimal  décimal
autre méthode
1 5 3 E16 =
1016 = 1610
00
E * 16
1016
10
110
14
11
+ 3 * 16
1016
10
1610
48
22
+ 5 * 16
1016
10
25610
1280
33
+ 1 * 16
1016
10
409610
4096
543810
Conversion binaire  décimal
1 0 0 1 0 1 0
1 2
*2
2+ 0
*2
4+ 0
*2
8+ 1
*2
18 + 0
*2
36 + 1
*2
74 + 0
*2
148 + 1 =
14910
Conversion binaire  décimal
autre méthode
1 0 1 12
102 = 210
=
1 * 10
21020
110
1
1
+ 1 * 210
102
210
2
2
+ 0 * 210
102
410
0
3
+ 1 * 210
102
810
8
1110
Conversion hexadécimal  binaire
16 = 24
Chaque chiffre hexadécimal

016
116
216
316
416
516
616
716
816









00002
00012
00102
00112
01002
01012
01102
01112
10002
916
A16
B16
C16
D16
E16
F16
4 chiffres binaires







10012
10102
10112
11002
11012
11102
11112
Conversion hexadécimal  binaire
A 4 8 C 16
1010 0100 1000 1100
2
Remplacer chaque chiffre hexadécimal
par son équivalent binaire (en 4 chiffres)
Remarque : on peut supprimer les 0
en début de nombre
Exemple : 39D16 = X
0011 1001 11012
Conversion binaire  hexadécimal
1010 0100 1000 11002
A
4
8
C
10100100100011002 = A48C16
Regrouper les chiffres binaires par 4
(en commençant par la fin du nombre)
Remplacer chaque groupe de 4 chiffres binaires
par son équivalent hexadécimal
Exemple :
00 11 1001 10112
3
9
B
11100110112 = 39B16
Téléchargement