Exercices Circuits Ligoques et Assembleur TP circuit Logique - assembleur

Exercice 1 :

Circuits Logiques

1.  Donner la table de vérité de la fonction  XOR. Déduire l’expression de la fonction logique sous forme canonique (plusieurs termes formés par des littéraux connectés par des ET, les termes étant ensuite  réunis par des OU). Déduire une réalisation de cette fonction en circuit logique combinatoire utilisant les seules portes NON, ET et OU.

2.  On veut réaliser un circuit logique qui dit si un nombre binaire sur 3 bits est divisible par trois. Donner la table de vérité de la fonction « nombre de trois bits divisible par trois ». On rappelle que 0 est divisible par 3 puisque 0 0 3 0 reste = ¸ . Déduire une réalisation de cette fonction en circuit logique utilisant les portes  NON,  ET et  OU.
Déduire une autre réalisation, utilisant un circuit multiplexeur.

3.  On veut  réaliser le boîtier, nommé « traducteur » sur le schéma suivant, de façon à ce qu’un afficheur  sept segments montre la valeur d’un nombre binaire disponible sur les 4 fils de données (E0 à E3). On suppose ici que le nombre binaire en question ne dépasse jamais 910. Chacun des segments est allumé séparément par une fonction logique qui lui est propre, et qui ne dépend que des fils E0 à E3.



Donner la table de vérité relative aux segments S0 et S5 afin que ces segments soient allumés pour dessiner les chiffres figurant sur  la droite  du schéma.  Donner la fonction logique relative au segment  S5.  Déduire la  partie de la  réalisation  du traducteur commandant le fil S5.
On veut réaliser le même  travail pour le segment S0. Laquelle des deux fonctions « S0 est allumé »  ou  « S0 est éteint » est la plus simple à formuler ? Déduire une réalisation concise du circuit logique commandant S0 en utilisant une porte NON-OU.

Assembleur


4.  On veut forcer les bits 2, 4 et 7 de la valeur contenue dans le registre AL à être mis à un. Comment procéder ?

5.  On veut écrire une routine qui saute à l’adresse plouf si les bits numéro 2, 4 et 7 de la représentation binaire de la valeur contenue dans le registre AL sont tous les trois à zéros, et saute à l’adresse  wizz sinon. Comment isoler les valeurs de ces bits, et comment procéder pour le saut ?

6.  Même question que la 4, mais pour forcer les bits à être à zéro.

Exercice 2 :


Circuits Logiques


1.  Étudier le circuit suivant en remplissant une table de vérité en fonction des différentes valeurs de E0, E1 et S. De quel circuit, vu en cours, ce circuit se rapproche t’il le plus ?
Quels autres noms donner aux entrées E0 et E1, ainsi qu’à la sortie S ?



Assembleur
Manipulations basiques de la pile

2.  En vous servant de  push et  pop,  écrire une routine « swap_ab » qui échange les valeurs contenues dans les registres eax et ebx sans modifier d’autres registres et sans réserver de  mémoire ni en  section .data, ni en  section .bss.  Exécuter la routine à la main, en faisant des schémas représentatifs de l’état de la pile après chaque opération.

3.  Écrire une routine « ear1 » qui écrit en hexadécimal à l’écran, l’adresse à laquelle elle effectuera son retour. (indication : étudier le fonctionnement des instructions call et ret). Faire comme précédemment des diagrammes illustrant l’état de la pile après chaque opération.

4.  Écrire une routine « ear2 » qui répond à la même question que précédemment, mais en prenant garde à ne pas détruire la valeur contenue dans  eax avant l’appel de la routine. Faire, ici aussi, les schémas.
                                

Article plus récent Article plus ancien

Leave a Reply