Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

L'essentiel d'Assembleur

Mettre en œuvre l'adressage indirect

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Vous allez écrire un programme qui va permettre l'initialisation complète de la mémoire RAM par le biais de l'adressage indirect. Normalement, cette routine doit être présente dans tous vos programmes.
04:47

Transcription

Dans cette vidéo donc, nous allons utiliser le Lab6 pour illustrer en fait l'adressage indirect. Donc, j'ai laissé mes bits de configuration comme ceci. Et maintenant nous allons voir un peu le contenu du Lab. Alors en fait, ce que j'ai fait, c'est simplement créer des variables qui vont prendre tout l'espace RAM qui m'est attribuable. Et après en fait, ce que je vais faire c'est que je vais leur mettre des valeurs qui pourraient être aléatoires. Alors, là elles ne sont pas aléatoires c'est moi qui les mets mais nous sommes dans un simulateur. Donc je ne peux pas lui dire remplis-moi de façon aléatoire toutes mes variables. Ça, non ! Vous ne pouvez pas. Donc, j'ai fait un truc qui est loin d'être aléatoire et qui est en fait totalement logique c'est-à-dire que dans ma variable 1 j'ai mis 1, dans ma variable 2 j'ai mis 2, enfin bon bref vous avez compris. Et après donc, ce que je vais faire c'est initialiser ma RAM parce que j'ai des valeurs ici dont je vais me débarrasser. La méthode la moins intelligente c'est justement d'utiliser à chaque fois CLRF pour chaque variable; ce qui nous prend donc un total d'espace mémoire de 21%. Sachant que après vous allez le voir, mon programme principal ne fait strictement rien. Donc là en fait, j'ai déjà utilisé 21% pour déclarer et pour effacer ma RAM. Et donc il me reste on va dire 3/4, un peu plus de 3/4 de ma mémoire programme pour pouvoir écrire un programme. Ce qui est quand même très dommage. Donc à partir de là dans variable j'ai fait du job. Parce que c'est très long de faire ça à la main donc j'ai rentré des adresses une à une. Et puis lançons un peu le débogueur. Alors pour cela, avant je vais mettre voilà mon point d'arrêt sur START comme ça on pourra faire du pas à pas. Donc, je lance le débogueur, je regarde mes variables. Et puis j'y vais en pas à pas. Donc là, le simulateur je l'ai laissé et puis, vous voyez que, mes variables s'incrémentent voilà donc dans variable 7 j'ai 7, ainsi de suite. Et là j'arrive donc à l'effacement. Donc, évidemment je passe le tout à zéro. Bon on s'en doute un peu, puis après, je reste bloqué là évidemment je ne fais rien. Le microcontrôleur tourne sur lui-même. Donc à partir de là on se dit, est-ce qu'il n y a pas une autre méthode pour faire tout ceci ? Donc, je vais sélectionner mes CLRF, je vais les passer en commentaires ici, je vais prendre ma petite routine qui est ici, et je vais la « décommenter ». Voilà ! Alors là je dis quoi ? Je dis tu pars en fait de l'adresse 10. Donc je charge en fait l'adresse 10 dans FSR. Que vais-je faire avec tous les registres qui sont pointés ? Je vais les "clearer" donc je vais les mettre à 0. Et puis je vais incrémenter en fait FSR de un pas chaque fois jusqu'à tant que le bit 4 de ce registre passe à 0. Dans ce cas-là, j'aurais terminé. Donc on revérifie un peu tout ça donc pour cela je dois arrêter, je dois relancer le débogueur qui va recompiler mon projet et puis on regarde encore une nouvelle fois le résultat. On va laisser quand même un tout petit peu d'espace pour voir le programme. Comme ceci c'est mieux. Et donc, on est parti, et donc, j'en suis parti pour initialiser mes variables avec les valeurs que j'ai décidées de donner, et puis après, on y va. Donc, je fais quoi ? Je charge FSR avec l'adresse courante. Cette adresse courante va être pointée. Et donc je pointe l'adresse 10. Et dans 10 je vais y mettre quoi ? IDNF, IDNF justement qui va valoir 0. Parce que j'ai mis CRLF dedans. Donc regardons, j'ai 0. Je passe au suivant : 0, 0, 0, 0, 0. Et voilà et je peux continuer comme ça, et j'arrive à « clearer » tranquillement en fait toutes mes variables et là voilà j'ai fini. Donc je reste dans ma boucle infinie et là vous voyez que j'ai bien en fait absolument tout initialisé. Et au niveau donc de l'espace mémoire, vous voyez j'ai récupéré un petit peu d'espace programme parce que j'étais à 21% je suis tombé à 18. Mais imaginez qu'on ait un microcontrôleur beaucoup plus gros. Faire ceci n'est absolument pas une méthode acceptable. La seule méthode vraiment utilisable et justifiée pour initialiser votre RAM sera celle-ci.

L'essentiel d'Assembleur

Plongez-vous dans le langage bas niveau, nommé Assembleur. Abordez les notions de jeu d'instructions, de pipeline, de registres, de mode d’adressage, de compteur de programme, etc.

4h52 (57 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :26 sept. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !