Projets de jeux video, photos de paysages et tutoriaux de programmation Projets de jeux video, photos de paysages et tutoriaux de programmation

Assembleur (13h)

Mode 13h

Fonctions 13h (1)

Fonctions 13h (2)

Fonctions 13h (3)

C (1)

C (2)

Cryptage (1)

Cryptage (2)

Compression RLE
Attention : cette page n'est pas une initiation à l'assembleur, cette page n'a qu'un seul but : expliquer les 2-3 principes de bases nécessaires pour comprendre la programmation du mode 13h et non de faire apprendre le langage assembleur.


Segment et Offset


La mémoire d'un ordinateur est comme vous le savez (du moins j'espère) une série d'octets. Sur les PC la mémoire est divisée en zones de 64 Ko (65536 Octets) appelées segments. L'adresse d'un octet en mémoire se compose donc de 2 éléments : un segment et d'un déplacement (l'offset), la notation est la suivante Segment :Offset.

Exemple :

A000 :0001 représente le deuxième octet du segment numéro A000 (40960 en décimal).

Les registres


Les registres sont des sortes de cases mémoires très rapides situées à l'intérieur du microprocesseur. Il en existe de plusieurs sortes :

Les registres généraux :

Elles ont à manipuler des données et à transmettre des paramètres lors d'appels d'interruptions. On peut les comparer à des variables classiques à un détail prés, elles ont une taille fixe de 32 bits subdivisés en 3 parties, une de 16 bits (les 16 premiers bits que l'on appel aussi bits de poids faible ) et deux de 8 bits (qui ne sont rien d'autre que les 8 premiers et derniers bits des 16 précédents). Ces registres sont les suivants :


Registre étendu
(32 bits)
Registre
(16 bits)
Partie forte du registre
(8 derniers)
Partie faible du registre
(8 premiers)
Fonction
EAX AX AH AL Accumulateur
EBX BX BH BL Base
ECX CX CH CL Compteur
EDX DX DH DL Données
ESI SI Non accessible directement Index de source
EDI DI Non accessible directement Non accessible directement Index de destination
ESP SP Non accessible directement Non accessible directement Pointeur de pile
EBP BP Non accessible directement Non accessible directement Pointeur de base

J'ai mis ce tableau à titre indicatif car je le répète le but de cette page n'est pas une initiation a l'assembleur.

Remarque : lorsque que l'on modifie une partie de registre, les sous-parties sont bien sur touchées. Exemple si je modifie la valeur de EAX alors AX, AH et AL sont modifiées mais l'opération inverse n'est pas forcément vraie, si je touche à AL, la valeur de AH n'est pas modifiée.


Les registres de segment :

Ils sont utilisés pour stocker l'adresse du début d'un segment. Cela peut être un segment d'instruction de programme, de début de données ou de la pile.

Nom Fonction
CS Segment de code
DS Segment de données
ES Extra Segment
SS Segment de pile
FS Segment supplémentaire (386 et +)
GS Segment supplémentaire (386 et +)

Les autres registres :

Il existe un registre contenant le déplacement a effectuer par rapport au début d'un segment (EIP) et un registre Flag qui comporte des bits d'informations (débordement, signe, retenue , ...).

Les opérations de base


L'affectation :

Pour donner à une variable ou à un registre une valeur on utilise la fonction mov

Exemple : faire prendre au registre AX la valeur 123
mov ax, 123 ;

L'addition :

L'addition se fait à l'aide de add.

Exemple : additionner 12 et 53, le resultat sera automatiquement stocké dans AX
mov ax, 12 ;
add 53 ;

La multiplication :

L'addition se fait à l'aide de mul.

Exemple : multiplier 5 et 9, le resultat sera automatiquement stocké dans AX
mov ax, 5 ;
mul 9 ;

Les interruptions


Les interruptions sont des fonctions du Bios ou du système d'exploitation. Certaines fonctions ont besoin de paramètres, on les transmet alors à l'aide des registres. On exécute une interruption grâce a la fonction int.


Exemple :

Exécution de l'interruption 10h avec passage de paramètres dans AH et AL

mov ah, 00h ;
mov al, 13h ;
int 10h ;


Voilà ce sera tout pour l'assembleur, à mon avis cela suffît pour comprendre le fonctionnement mode 13h.






Calvat.com © 2001-2007


Parapente    Logiciel boursier    Immobilier    Annonces immobilieres    Annuaire Référencement    Multimedia
Rencontre    Emploi, CV    Gestion de contacts    Vacance    Parfum    Cosmetique