You are on page 1of 8

UNIVERSITE de BRETAGNE du SUD ECOLE NATIONALE SUPERIEURE des INGENIEURS de BRETAGNE du SUD

Compte Rendu : Travaux Pratique Architecture de l’ordinateur n°1 Langage d’assemblage

Réalisé par

AL ECHCHEIKH EL ALOUI Adnane Année Universitaire 2010/2011

Encadré par Madame Lebreton G

1

I.

Introduction

Un langage d'assemblage ou langage assembleur ou simplement assembleur par abus de langage, abrégé ASM est un langage de bas niveau qui représente le langage machine sous une forme lisible par un humain, dans ce TP on va utiliser Le logiciel MPLAB , Le logiciel MPLAB est un outil de développement pour programmer des microcontrôleurs de type PIC de la famille Microchip. Il est mis au point par la société Microchip, et est entièrement gratuit. Ce logiciel nous permettra de créer un programme, de l'assembler, et de le simuler. Enfin, on pourra transférer le programme réalisé sous MPLAB pour le mettre sur votre PIC. donc l'environnement de développement (IDE) MPLAB regroupe tous les outils nécessaires à la mise au point d'une application avec un cœur de microcontroleur dsPIC, entre autres, de MICROCHIP : éditeur de texte interactif compilateur C (et assembleur) simulateur debugger si on dispose de l'équipement nécessaire

II.

Réalisation

Pour Démarrer un nouveau projet : Project -> Project Wizard -> Choisir la cible dans la liste Proposée -> Sélection du langage de programmation -> Nom et emplacement du projet

Question 1
L’initialisation des registres on utilise la fonction MOV :
MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV #0xCACA, #0xCAC1, #0xCAC2, #0xCAC3, #0xCAC4, #0xCAC5, #0xCAC6, #0xCAC7, #0xCAC8, #0xCAC9, #0xCACE, #0xCACF, #0xCACC, #0xCACB, #0xCACD, W0 W1 W2 W3 W4 W5 W6 W7 W8 W9 W10 W11 W12 W13 W14

2

Résultat de compilation et d’exécution

Question 2
L’opération en utilisant une instruction REPEAT Syntax: REPEAT #17 ( executed 18 consecutive times)

clr W14 mov #0xcafe, W0 REPEAT #13 MOV W0, [W14++]

3

Résultat de compilation et d’exécution

Question 3
Réalisation de opération à l’aide d’un test et d’un saut Syntax: {label:} CPSEQ{.B} Wb, Wn

MOV #0xbebe, W0 MOV #0x1100, W14 clr W14 loop: MOV W0,[W14++] CP W14, #0x001c BRA NZ loop

4

Résultat de compilation et d’exécution

III.

Ecriture de sous-programmes

Question 5 &4 En utilise CP OU CPSEQ MOV #0xAAAA,W0 MOV #0x1000,W1 MOV #0x1020,W2 CALL init_mem ; the program never stop boucle : goto boucle init_mem: MOV W1,W14 loop: MOV W0,[W14++] CP W14,W2 BRA NZ loop return

5

Résultat de compilation et d’exécution

Filter numérique(L’objectif de cette partie est de travailler sur une architecture fixe ) Question 7 :
Initialisation des zones mémoire pour les échantillons d’entrée

MOV #0x0000,W0 MOV #0x1000,W1 MOV #0x1064,W2 CALL init_me ; the program never stop boucle : goto boucle init_mem: MOV W1,W14 loop: MOV W0,[W14++] CP W14,W2 BRA NZ loop return
6

Boucle d’initialisation des A :

MOV #0x0000,W0 MOV #0x1100,W1 MOV #0x110F,W2 CALL init_me ; the program never stop boucle : goto boucle init_mem: MOV W1,W14 loop: MOV W0,[W14++] CP W14,W2 BRA NZ loop return

Question 8 : MOV #0X0001, W0 MOV #0X10C8 ,W13 MOV #0X1000, W14 CALL INIT_MEM MOV #0X0001, W0 MOV #0X1420 ,W13 MOV #0X1400, W14 CALL INIT_MEM MOV #15, W4 MOV #100, W14 MOV #0, W13 MOV #0, W1 MOV #0X1000, W6 MOV #0X1200, W2 REGISTRE2: MOV [W6++], W12 MOV #16, W7 MOV #0X1400, W5 REGISTRE1: MOV [W5++], W9 MUL.SS W12, W5, W8 ADD W1, W8, W1

7

4 DEC W7, W7 CPSEQ W7, W13 BRA REGISTRE1 ADD #1, W4 MOV W1, [W2++] CP W4,W14 BRA INIT_MEM BRA REGISTRE2 BOUCLE : GOTO BOUCLE INIT_MEM: MOV W0,[W14++] ADD #1,W0 CP W13,W14 BRA INIT_MEM RETURN .END

Conclusion Dans ce TP on a écrire des programmes en assembleur et en même temps suivre l’évolution de ces programmes dans la « mémoire », Remarque pour observer le résultat en ouvrant la fenêtre "Program Memory" ("View / 3 Program Memory")

8