TP Microprocesseurs
TP Microprocesseurs
Il rassemble une série de travaux pratiques (TP) ayant pour but de permettre aux
étudiants de mieux comprendre les implications pratiques de leurs cours de
microprocesseur 8086. L’accent y est mis sur l’utilisation pratique de la maquette
didactique MTS-86C, qui utilise le langage assembleur.
En effet l’assembleur est un langage largement répandu depuis bien longtemps, et y
reste aujourd’hui, autant dans les universités que dans les centres de recherche et
développement, ainsi que dans l’industrie.
En plus des TP ce manuel fournie aux étudiants un certains nombres d’informations
(compléments théoriques) qui leurs serons utiles pour débuter leurs TP.
Le but de ces TP est de stimuler l’intérêt des l’étudiants pour l’usage du langage
assembleur utilisé dans divers domaines d’automatique industrielle principalement
commande industrielle, à travers une démarche de synthèse plutôt que par le biais de
travaux d’analyse. Il ne s’agit donc pas ici d’illustrer le cours, mais bien de le mettre
en pratique.
Ce fascicule contient cinq TP indépendants et chaque TP comprend :
▪ Une description du but du TP.
▪ Un aperçu théorique nécessaire à la compréhension du TP.
▪ Une description des étapes à suivre pour réaliser TP.
AVANT-PROPOS
Annexe
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
Le kit MTS-86C est composé d´un microprocesseur 16 bits (8086 d’Intel) auquel sont
connectés tous les constituants principaux de l’informatique industrielle :
1
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
Le moniteur
Le système MTS-86C est piloté par un moniteur en ROM. En mode autonome, le moniteur
assure la gestion de la saisie du clavier, l’affichage du contenu de la mémoire ou des messages de
dialogues et l’exécution des commandes de l’utilisateur. En mode liaison, le moniteur assure le
dialogue avec le PC et l’exécution des requêtes de celui-ci (chargement de programme utilisateur
en RAM, exécution du programme, lecture/écriture de la mémoire et des ports,…).
La mémoire RAM
Le MTS-86C possède une RAM de 64 Ko (de 00000H jusqu’à 0FFFFH) et une EPROM
utilisée comme une ROM système.
Le moniteur utilise les cases mémoires s’étendant de F8000H jusqu’à FDFFFH, le programme
principal (pour le contrôle du clavier) utilise les cases de FE000H jusqu’à FFFFFH.
Les adresses de la mémoire utilisateur est E0000H-EFFFFH et elle est utilisée par le ROM et la RAM.
2
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
Le 8086 a initié l'avènement de la famille des microprocesseurs Intel 80x86. Bien que sa
conception s'appuie sur celle des microprocesseurs 8 bits qui l'on précédé (i.e. le 8080 et le 8085), il
n'est pas directement compatible avec eux.
Le 8086 a été le premier microprocesseur 16 bits à être largement utilisé, et son implantation au
sein des premiers IBM PC lui a permis d'imposer sa famille au premier rang des microprocesseurs
16 bits. Ses successeurs ont alors largement profité de leur compatibilité logicielle, pour s'assurer
la fidélité d'une large base installée.
Le rôle de la BIU est de récupérer et stocker les informations à traiter, et d'établir les
transmissions avec les bus du système. L'EU exécute les instructions qui lui sont transmises par la
BIU.
Pendant que l'EU du 8086/8088 exécute les informations qui lui sont transmises, l'instruction suivante
est chargée dans la BIU. Les instructions qui suivront sont placées dans une file d'attente. Lorsque l'EU a
fini de traiter une instruction la BIU lui transmet instantanément l'instruction suivante, et charge la
troisième instruction en vue de la transmettre à l'EU. De cette façon, l'EU est continuellement en activité.
3
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
AX AH AL SP CS IP
BX BH BL BP DS FLAGS
CX CH CL SI SS
DX DH DL DI ES
4
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
d'E/S.
• Registres de segments : 4 registres sur 16 bits. Ils sont employés par la CPU pour
déterminer les adresses de segment de mémoire.
Le registre DS: (D Datat segment): Le registre segment de données pointe sur la zone
mémoire de données.
Le registre ES: (Extra segment) : segment auxiliaire pour données.
Le registre CS: ( Code segment) : segment de code.
Le registre SS: (Stack segment) : Le registre SS pointe sur la pile.
Remarque: la pile est une zone mémoire ou on peut sauvegarder le contenu des registres,
les adresses ou les données pour les récupérer après l'exécution d'un sous-programme ou
l'exécution d'un programme d'interruption, elle fonctionne selon le principe FILO.
5
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
Flags
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Le processeur 8086 a un bus d'adresses du bit 20, Ceci permet au processeur d'adresser
220 ou 1048576 emplacements mémoire différents (1 Mo).
Puisque les registres du 8086 ne font que 16 bits et avec 16 bits en peut adresser que 64 ko
alors INTEL a proposé de fractionner la mémoire totale adressable de 1 Mo en bloc de 64ko
appelés segments. On utilise alors deux registres pour adresser une case mémoire (registre
de segment combiné au registre d’offset), on appelle donc adresse logique la quantité représentée
par : le couple : segment : offset.
On appelle adresse physique : L’adresse d’une case mémoire donnée sous la forme d’une
quantité sur 20 bits.
6
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
TP N1
Initiation au micro-ordinateur
MTS-86C
1. But
L’objectif de cette manipulation est :
• La familiarisation avec le fonctionnement de base du MTS-86C
• Apprendre à exécuter les principales commandes.
On procèdera à l’introduction de la procédure d’utilisation du Kit MTS-86C en
utilisant seulement les touches du clavier pour saisir des programmes simples. A la fin
de la manipulation l’étudiant sera capable de :
• Utiliser le clavier du Kit MTS-86C ;
• Saisir un programme en langage machine ;
• Comparer l’utilisation du langage machine et du langage assembleur.
Matériels utilisés :
- Le Kit MTS-86C.
Durée :
1H30mn
7
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
2. Présentation du MTS-86C
Le micro ordinateur MTS-86C est un kit basé sur le microprocesseur Intel 8086. Les
principales caractéristiques techniques du système sont:
Le microprocesseur Intel 8086
Mémoire RAM du système (62256 *2 EA 64KB).
Mémoire Rom du système (27256*2 EA 64KB).
Mémoire utilisateur de (27256*2 EA 64KB ou bien (62256 *2 EA 64KB).
Interface I/O.
Connexion.
Alimentation.
Entrée d'AC85-260V
Sortie de DC 5V, 2A, DC+- 12V 0.3 A
L'unité d'entrée est le clavier qui permet à l'utilisateur d'introduire les commandes et les
données au système.
L'unité de sortie du système est l'écran à cristaux liquides.
Les commandes et les données introduites à partir du clavier apparaissent sur l'écran.
Seulement deux lignes peuvent être visualisées sur l'écran.
8
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
RESET NMI C D E F
/IP /FL
+ 8 9 A B
- IW/CS OW/DS /SS /ES
: REG 4 5 6 7
IB/SP OB/BP MV/SI EW/DI
0 1 2 3
, . EB/AX ER/BX GO/CX ST/DX
Touches Description
La touche RESET vous permet d’initialiser la carte MTS-86C. Quand
RESET la touche est pressée le 8086 envoie un message sur le LCD et le
monitor est près.
La touche NMI génère une interruption non masquable de type 2.
NMI
La touche + vous permet d’additionner 2 valeurs hexadécimale.
+
La touche – vous permet de substituer une valeur hexadécimale d’un
- autre.
: Cette touche vous permet de séparer une adresse entrée sur deux
parties ; la valeur de segment ou de l’offset.
Cette touche vous permet d’utiliser les contenus des registres du 8086
REG comme une adresse ou une donnée en entrée.
, Cette touche sépare les entrées saisies à partir des touches du clavier et
incrémente l’adresse mémoire à chaque entrée.
. Lorsque cette touche est appuyée la commande courante est exécutée.
Notez que lorsque la touche GO est appuyée, le 8086 lance l’exécution
à partir de l’adresse spécifiée quand la touche est pressée.
9
Les touches hexadécimales
10
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
4. Manipulation
Comment utiliser les principales touches de fonction pour introduire le programme précédant
en mémoire ?
Reset 0(EB/AX) → 0(EB/AX) → 0EB/AX) → : → 0 → ' B8' (donnée variable) → , ' 54'
(donnée variable) , →' 7A ' (donnée variable) → ,,,,,,,,,,,,,,,,, →,' F4 ' (HLT) → . (Fin de la
commande)
b/Pour exécuter ce programme étape par étape, on utilise les touches suivantes :
c/ pour accéder aux différents registres ou pour lire ou modifier leurs contenus on utilise les
touches suivantes :
5. Travail demandé
4/ Etablir une liste des programmes démos et déterminer leurs emplacements mémoire.
11
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
TP N2
Initiation à la programmation en assembleur
(Les instructions de transfer)
1. But du TP
Ces instructions permettent de déplacer des données d’une source vers une destination, toute en
gardant la même information dans la source. Plusieurs modes d’adressage sont possibles.
Matériels utilisés :
- Le Kit MTS-86C.
Durée : 1H30mn
2. Rappel
Elles permettent de déplacer des données d’une source vers une destination:
• registre vers mémoire ;
• registre vers registre ;
• mémoire vers registre.
MOV destination, source
Destination = Reg. ou case mémoire
Source = Reg., case mémoire, ou donnée immédiate
Note : Une opération de transfert ne peut pas se faire entre deux cases mémoire, il faut que ça passe
12
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
3. Manipulation
Exercice 01:
13
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
Exercice 2
14
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
TP N3
Initiation à la programmation en assembleur
(Les instructions arithmétiques)
1. But du TP
Le but de cette manipulation est :
• Utilisation des instructions arithmétiques du µp 80x86 en utilisant le MTS-86C.
• Les modes d’adressage possibles
• Emplacement des résultats
Les instructions arithmétiques de base sont l’addition, la soustraction, la multiplication et la
division qui incluent diverses variantes. Plusieurs modes d’adressage sont possibles.
Matériels utilisés :
- Le Kit MTS-86C.
Durée :
1H30mn
2. Rappel
ADDITION
Un nombre non signé est défini comme une donnée ou tous ses bits sont utilisés pour la
représenter, i.e. aucun bit n’est réservé pour représenter son signe, négatif ou positif. Par exemple
un opérande sur 8-bits peut prendre des valeurs de 00H a FFH (de 0 a 256 en décimale).
Un opérande dest. peut être un registre ou une case mémoire. Un opérande source peut être un
registre, une case mémoire, ou une valeur immédiate. Les opérations de mémoire à mémoire non
permises dans le langage assembleur du 80x86. L’instruction ADD peut changer les indicateurs ZF,
SF, AF, CF ou PF du registre FLAG. Le OF concerne les opérations signées.
15
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
--------------
00000 0001 → ZF = 0, CF = 0, AF = 1, PF = 0, SF = 0 (bit D7 est 0)
Soustraction
Pour la soustraction, les µp 80x86 utilisent la méthode complément à 2 (Cà2), pour éviter un
circuit soustracteur (économie de transistors oblige). Les étapes à suivre par le hardware de la CPU
pour mener l’instruction SUB, pour les nombres non signés, sont:
1- Prendre le Cà2 de l’opérande source : (Cà1+1)
2- Ajouter a l’opérande destination.
3- Inverser la retenue CF.
Si CF = 0, le résultat est positif. Si non il est négatif. Dans ce cas l’opérande destination contient le
Cà2 du résultat. Normalement, ce résultat est laissé tel que.
16
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
MUL opérande, ou opérande est un registre ou une case mémoire. Cette instruction effectue la
multiplication du contenu de AL par un opérande sur 1 octet ou du contenu de AX par un opérande
sur 2 octets. Le résultat est placé dans AX (résultat sur un octet) ou il est placé dans AX et DX
(résultat sur deux octets).
MOV AL, 23H ; l’un des opérandes (ici une donnée immédiate) toujours dans AL
MOV CL, 65H ; 2eme opérande (ici une donnée immédiate) dans le registre BL
MUL CL ; AX = CL (65h) x AL (23h)
Division non signée: DIV opérande, ou opérande est un registre ou une case mémoire.
Cette instruction effectue la division du contenu de AX par un opérande sur 1 octet si
l’opérande est sur 1 octet, alors AL = quotient et AH = reste
Dans la division des nombres non signés, quatre cas sont considérés:
Il existe deux cas « exception » ou la CPU ne peut effectuer une division: division par « 0 »
ou si le quotient est plus large que la taille du registre. Un signal d’interruption est activé et
le PC affiche un message d’erreur
Les modes d’adressage permis : Adressage direct, Adressage registre, Adressage registre
indirect:
Note: Dans les manuels d’Intel IMUL et IDIV pour Integer MULtiplication et DIVision (X et / des
nombres entiers) mais au fait il s’agit de Multiplication et Division des nombres signés.
17
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
3. Manipulation
Exercise :
18
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
6) Déterminer les registres impliques dans chaque instructions arithmétiques, son mode d’adressage et
l’emplacement des résultats.
19
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
TP 4
Initiation à la programmation en assembleur
(Les instructions logiques)
1. But du TP
Le but de cette manipulation est :
• Utilisation des instructions logiques du µp 80x86 en utilisant le MTS-86C.
• Déterminer les différents indicateurs impliqués pour chaque opération logique
Les instructions arithmétiques de base sont : ET logique, OR logique, OU exclusif, le complément à
1, complément `a 2, décalages et rotations. Plusieurs modes d’adressage sont possibles.
Matériels utilisés :
- Le Kit MTS-86C.
Durée :
1H30mn
2. Rappel
Ce sont des instructions qui permettent de manipuler des données au niveau des bits. Les opérations
logiques de base sont : ET(AND), OU (OR), OU exclusif (XOR), complément `a 1 (NOT),
complément `a 2 (NEG), décalages et rotations.
Avec AND seuls les indicateurs ZF, SF et PF sont affectés et (CF, OF) → 0. 0 1 0
L’instruction AND est utilisée pour:
1 0 0
- Masquer (mise à 0) certains ou tout les bits (AND AL, 00h)
- Application: Tester si un opérande est “0” 1 1 1
20
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
1 11 11 000
1 0
Avec OR seuls les indicateurs ZF, SF et PF sont affectés et (CF, OF) → 0.
L’instruction OR est utilisée pour:
- Mettre à 1 certains ou tout les bits (OR BL, FFh).
- Tester si un opérande est “0”
21
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
Les décalages arithmétiques permettent de conserver le signe. Ils sont utilisés pour effectuer
des opérations arithmétiques comme des multiplications et des divisions par 2.
Instructions de Rotation
Dans les rotations, les bits déplacés dans un sens sont réinjectés de l’autre côté du mot. Les quatre
opérations de rotation disponibles apparaissent dans la figure suivante :
22
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
L’instruction CMP affecte les indicateurs AF, OF, SF, PF, CF et ZF mais
C Comparer ZZ ZF
ZF CF
seuls CF et ZF sont utilisés. Op opérandes
L’opérande destination peut être dans un registre ou dans une case
Des Dest. > Source
000 0000 0
mémoire.
L’opérande source peut être dans un registre, dans une case mémoire, ou
Des Dest. = Source
111 100
1 0
en mode immédiat.
Les opérandes (destination et source) ne changent pas. Des Dest. < Source
000 011
0 1
DATA1 DW 235FH
…
MOV BX, 7888H ; 7888Hh → BX
MOV CX, 9FFFH
CMP BX, CX ; BX < CX ➔ CF=1 ➔ JNC est exécutée → PASSE
JNC PASSE
3. Manipulation
Exercice 01:
23
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
6) Dresser les tableaux de vérité et comparer les résultats théoriques obtenus avec ceux obtenus par
l’exécution du programme.
Exercice 02:
Adresse
L Langage mnémoniques Registre AL Registre AL
m Machine Les valeurs remis resultat
0 0000 B0FF M MOV AL,11111111B 0000 0000 B 0000 0001 B
0 0002 D0E0 SHL AL,1
00 0004 D0E8 SHR AL,1
00 0006 B088 MOV AL,10001000B
0 0008 B103 MOV CL,3
0 000A D2F8 SSS SAR AL,CL
0 000C B080 MOV AL,10000000B
00 000E D0C0 ROL AL,1
0010 D0C8 ROA AL,1
0012 B080 MOV AL,10000000B
0014 D0D0 RCL AL,1
0016 D2D8 RCR AL,1
0 0018 F4 HLT
24
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
TP N5
Initiation à la programmation en assembleur
(Les instructions de saut et de branchement)
1. But du TP
Le but de cette manipulation est :
• Utilisation des instructions de saut du µp 80x86 en utilisant le MTS-86C,
• Constater l’effet des différentes conditions posées sur le déroulement du programme.
Matériels utilisés :
- Le Kit MTS-86C.
Durée :
1H30mn
2. Rappel
Les instructions de branchement (ou saut) permettent de modifier l’ordre d’exécution des
instructions du programme en fonction de certaines conditions. Il existe trois types de saut :
1 -Instructions de sauts inconditionnels
JMP label ; Provoque un saut sans condition à la ligne portant l'étiquette label. Où label est un
identificateur d'adresse de programme.
2 -Instructions de sauts conditionnels
Instructions de sauts conditionnels sont conditionnées par l'état des indicateurs (drapeaux) qui
sont eux même positionnés par les instructions précédentes.
Jxxx label où: xxx décrit la condition du saut.
25
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
3. Manipulation
Exercice :
6) Déterminer les registres impliqués dans chaque instruction, l’emplacement des différents
résultats.
7) Déterminer la condition imposée (Flag) dans chaque instruction de saut et sa satisfaction ou non
26
ANNEXE
27
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
Une opération ne peut pas se faire entre deux cases mémoire, il faut que ça passe par un
registre. On ne peut pas avoir des instructions du style :
Bien que le registre SP soit un registre d’adressage, il ne peut être utilisé directement pour
accéder à la pile, on peut toutefois le copier dans un registre valide pour l’adressage (BX, BP,SI, DI) et
utiliser ensuite ce dernier :
On ne peut pas faire des opérations directement sur un registre segment, il faut passer
par un autre registre. On ne peut pas non plus copier un registre segment dans un autre
IN ES
MOV BX,ES
INC BX
MOV ES,BX
On ne peut pas faire une multiplication ou une division sur une donnée (immédiat)
MUL im
DIV im
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
1. INSTRUCTION DE TRANSFERT
Général
MOV Déplacement d’un octet ou d’un mot
PUSH Ecriture d’un mot au sommet de la pile
POP Lecture d’un mot au sommet de la pile
XCHG Echange d’octets ou de mots
XLAT ou Traduction d’un octet à l’aide d’une table
XLATB
Entrées/Sorties
IN Lecture d’un port d’E/S
OUT Ecriture d’un port d’E/S
Transfert d’adresses
LEA Chargement d’une adresse effective
LDS Chargement d’un pointeur utilisant DS
LES Chargement d’un pointeur utilisant ES
Transfert des flags
LAHF Transfert des 5 flags bas dans AH
SAHF Transfert de AH dans les 5 flags bas
PUSHF Sauvegarde des flags sur la pile
POPF Restauration des flags à partir de la pile
Général
MOV Déplacement d’un octet ou d’un mot
PUSH Ecriture d’un mot au sommet de la pile
POP Lecture d’un mot au sommet de la pile
XCHG Echange d’octets ou de mots
XLAT ou Traduction d’un octet à l’aide d’une table
XLATB
Entrées/Sorties
IN Lecture d’un port d’E/S
OUT Ecriture d’un port d’E/S
Transfert d’adresses
LEA Chargement d’une adresse effective
LDS Chargement d’un pointeur utilisant DS
LES Chargement d’un pointeur utilisant ES
Transfert des flags
LAHF Transfert des 5 flags bas dans AH
SAHF Transfert de AH dans les 5 flags bas
PUSHF Sauvegarde des flags sur la pile
POPF Restauration des flags à partir de la pile
Initiation au langage Assembleur avec le MTS-86C M.Oukli - N.Mehnane
2. INSTRUCTIONS ARITHMETIQUES
Addition
ADD Addition d’octets ou de mots
ADC Addition d’octets ou de mots avec retenue
INC Incrémentation de 1 d’un octet ou d’un mot
AAA Ajustement ASCII de l’addition
DAA Ajustement décimal de l’addition
Soustraction
SUB Soustraction d’octets ou de mots
SBB Soustraction d’octets ou de mots avec retenue
DEC Décrémentation de 1 d’un octet ou d’un mot
NEG Complémentation à 2 d’un octet ou d’un mot (changement de signe)
CMP Comparaison d’octets ou de mots
AAS Ajustement ASCII de la soustraction
DAS Ajustement décimal de la soustraction
Multiplication
MUL Multiplication non signée d’octets ou de mots
IMUL Multiplication signée d’octets ou de mots
AAM Ajustement ASCII de la multiplication
Division
DIV Division non signée d’octets ou de mots
IDIV Division signée d’octets ou de mots
AAD Ajustement ASCII de la division
CBW Conversion d’octet en mot
CWD Conversion de mot en double mot
3. INSTRUCTION LOGIQUES
Logique
NOT Complément à 1 d’un octet ou d’un mot
AND ET logique de deux octets ou de deux mots
OR OU logique de deux octets ou de deux mots
XOR OU exclusif logique de deux octets ou de deux mots
TEST Comparaison, à l’aide d’un ET, d’octets ou de mots
Décalages
SHL/SAL Décalage à gauche arithmétique ou logique (octet ou mot)
Préfixes
REP Répétition tant que CX n’est pas nul
REPE ou REPZ Répétition tant qu’il y a égalité et que CX n’est pas nul
REPNE ou Répétition tant qu’il n’y a pas égalité et que CX n’est
REPNZ pas nul
Instructions
MOVS ou Déplacement de blocs d’octets ou de mots
MOVSB/MOVSW
CMPS ou Comparaison de blocs d’octets ou de mots
CMPSB/CMPSW
SCAS ou Exploration d’un bloc d’octets ou de mots
SCASB/SCASW
LODS ou Tranfert d’un octet ou d’un mot dans AL ou AX
LODSB/LODSW
STOS ou Chargement d’un bloc d’octets ou de mots par AL ou
STOSB/STOSW AX
5. INSTRUCTIONS DE BRANCHEMENT
Branchements inconditionnels
CALL Appel de procédure
RET Retour d’une procédure
JMP Saut inconditionnel
Contrôles d’itérations
LOOP Bouclage tant que CX = 0
LOOPE ou Bouclage tant que CX = 0 et ZF = 1 (égalité)
LOOPZ
LOOPNE ou Bouclage tant que CX = 0 et ZF = 0 (inégalité)
LOOPNZ
JCXZ Saut si CX est nul
Interruptions
INT Interruption logicielle
INTO Interruption si OF = 1 (overflow)
IRET Retour d’une interruption