Processeurs 80x86

Registres

Schéma des registres du 8086
Registres du micro-processeur 8086

Mémoire

Schéma de la mémoire du 8086
Mémoire du micro-processeur 8086

Adressage par segments

Schéma de la mémoire du 8086
Adressage du micro-processeur 8086

Instructions

Instruction de chargement et rangement

Instructions arithmétiques

Le micro-processeur possède un jeu d'instruction à deux opérandes. Ceci signifie que dans les opération arithmétiques et logiques, la destination est nécessairement une des deux operandes.

Instructions logiques

Branchements

Appel et retour de sous-routine

Modes d'adressages

absolu
indirect
avec les registres BX, SI ou DI
base + offset
avec les registres BP, BX, BI ou SI avec offset 8 ou 16 bits
indexé
l'addresse est la somme de deux registres. Les paires possibles sont BX+SI, BX+DI, BP+SI et BP+DI
base + index + offset
identique au mode précédent avec en plus un offset 8 ou 16 bits

Instructions complexes

Programmation

Voici un petit exemple de programme qui calcule la longueur d'une chaîne de caractères

; Segment de données
data		SEGMENT
chaine		DB 'Hello world\0'
data		ENDS

; Segment de code
code		SEGMENT
		ASSUME DS:data, CS:code

main:		; Initialisation du registre de segment de données
                MOV AX,data
		MOV DS,AX
		
		; Chargement de l'adresse de la chaîne dans BX
                ; Il s'agit de l'adresse relative au début du segment
		MOV BX,offset chaine
		; Initialisation compteur
		MOV CX,0

loop:		MOV AL,[BX]
	        CMP AL,0	; Test de fin de chaîne
		JZ fini
		INC BX		; Incrémentation pointeur
		INC CX		; Incrémentation compteur
		JMP loop

fini:           ; Retour au DOS
                MOV AH,4CH
		INT 21H
code            ENDS
                END main	; Adresse de lancement