0% ont trouvé ce document utile (0 vote)
487 vues2 pages

TP sur l'assembleur et microprocesseurs

Ce document décrit les commandes assembleur de base pour la manipulation de registres et de mémoire, ainsi que l'organisation de la mémoire et le fonctionnement du registre compteur d'instructions.

Transféré par

ben houria yassine
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
487 vues2 pages

TP sur l'assembleur et microprocesseurs

Ce document décrit les commandes assembleur de base pour la manipulation de registres et de mémoire, ainsi que l'organisation de la mémoire et le fonctionnement du registre compteur d'instructions.

Transféré par

ben houria yassine
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP : Adressage, mémoire, exécution programme

I. Introduction
Ouvrir une fenêtre de commande DOS, exécuter le programme "Debug" exemple
:
C:\...........> debug
Pour consulter l'aide taper "?", puis appuyer sur entrée

Les commandes :
• a: permet l'écriture d'un programme en assembleur
• p: l'exécution pas à pas de ce programme

1. Quel est le rôle des commandes e et d ? Donner un exemple d'utilisation pour


les deux commandes.
2. Comment est organisée la memoire centrale ?

Aide TP
Les microprocesseurs 80x86 possèdent un ensemble de registres internes (16 bits) :
exemple les registres ax, bx, cx, dx, etc
MOV est une instruction assembleur utilisée pour le transfert des données entre
registres ou entre mémoire et registres :
Mov dest , source
Exemple : mov ax,bx charger le contenu de registre ax par le contenu de
registre bx
mov [@1], ax charger le contenu de l’adresse @1 par le contenu de
registre al

Manipulation de registre
Pour écrire un programme en assembleur taper la commande a, valider par
entrée puis commencer à écrire.
On donne un programme qui illustre l’adressage immédiat :
mov ax , 123A
add ax, 2
Pour l’exécution pas à pas d’un programme utilisez la commande P=100 (100 est
l’adresse de début du programme à exécuter)

II. L’ordre big endian et little endian


Soit N = Byte3 Byte2 Byte1 Byte0, N est un nombre codé sur 32 bits.

Arrangement dans la mémoire :

Little Endian : Big Endian :

Base Address+0 Byte0 Base Address+0 Byte3


Base Address+1 Byte1 Base Address+1 Byte2
Base Address+2 Byte2 Base Address+2 Byte1
Base Address+3 Byte3 Base Address+3 Byte0

1
Écrire en mode assembleur (commande a) les instructions suivantes :
Mov ax, 1234 ;dans ce cas N est codé sur 16 bits est égal à 1234H
Mov [200], ax

Vérifier le changement effectué sur les adresses 200 et 201, qu’est ce que vous
remarquez, qu’elle est donc l’ordre utilisé dans les machines PC ?

III. Mémoire données et mémoire programme et le registre IP (Instruction pointer)


Le registre IP (nommé aussi compteur ordinal ou compteur de programme) est
toujours un pointeur sur la prochaine instruction à exécuter par le microprocesseur.

Soit le programme suivant :


Mov ax,0
Mov cx,[0500]; cx donne le nombre d’itération de boucle
Add ax,cx
Loop 0107
Mov [502],ax

1. Remplir la case mémoire d’adresse 0500 par 03 utiliser la commande e (E


address [list])
2. Ecrire ce programme à l’adresse 100.
3. Effectuer l’exécution pas à pas de ce programme. Q’est ce qu’il fait ce
programme ?
4. Durant l’exécution de ce programme, comment se fait le changement du
contenu du registre IP ?
5. Est ce que le contenu de registre IP change durant l’exécution d’une
instruction ?

Vous aimerez peut-être aussi