GPA770 Microélectronique appliquée Exercices série B.1

Documents pareils
GPA770 Microélectronique appliquée Exercices série A

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Rappels d architecture

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Ordinateurs, Structure et Applications

Jeu d instructions NIOS II

Codage d information. Codage d information : -Définition-

Architecture des ordinateurs

Contraintes, particularités. 1. Généralités Gestion de la mémoire a. Type des variables et constantes... 2

Informatique Générale

Cours d algorithmique pour la classe de 2nde

Guide d installation du logiciel Proteus V.8 Sous Windows Vista, 7, 8

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

I- Définitions des signaux.

Programmation C. Apprendre à développer des programmes simples dans le langage C

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96

NOTICE INSTALLATION. ARCHANGE Simplex Office N&B/Couleur KONICA MINOLTA BUSINESS SOLUTIONS FRANCE

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Structure d un programme

Programmation assembleur : aperçu

Logiciel de Base. I. Représentation des nombres

CM2 L architecture MIPS32

Cours Informatique 1. Monsieur SADOUNI Salheddine

Architecture des ordinateurs Introduction à l informatique

RAPPORT DE STAGE DE TROISIEME ANNEE EFFECTUE A

Conception de circuits numériques et architecture des ordinateurs

Licence Sciences et Technologies Examen janvier 2010

SUR MODULE CAMÉRA C38A (OV7620)

Aide à l installation et à la migration en HelloDoc 5.60

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Jeux de caracte res et encodage (par Michel Michaud 2014)

UE Programmation Impérative Licence 2ème Année

CUOMO PC Route d Oron Lausanne 021/

Conversion d un entier. Méthode par soustraction

Le codage informatique

Capteur solaire parabolique

Partie 7 : Gestion de la mémoire

Etude de FP3 commande moteur et électroaimant. Déplacement carte et connexion

VMware ESX : Installation. Hervé Chaudret RSI - Délégation Centre Poitou-Charentes

Chapitre IX : Virtualisation

Emporter Windows XP sur une clé USB

Gestion mémoire et Représentation intermédiaire

PARAGON Disk Wiper. Guide de l utilisateur. Paragon Technology GmbH, System Programmierung. Copyright Paragon Technology GmbH

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Pour connaître les dernières informations, consultez le site Internet du produit (

Les opérations binaires

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Structure fonctionnelle d un SGBD

Comment installer un client Rivalis Devis factures

MANUELS NUMÉRIQUES PROCÉDURE DE TÉLÉCHARGEMENT

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Présentation du cours

RÉALISATION ET MISE AU POINT D UN SYSTÈME DE TÉLÉSURVEILLANCE VIDÉO

Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155)

Transmissions série et parallèle

Travaux pratiques Détermination de la capacité de stockage des données

Panorama des moyens de contrôle des ports USB sous Windows XP

Sélection du contrôleur

Manuel de référence du langage Exemples Les aventures de Docteur R.

ASR1 TD7 : Un microprocesseur RISC 16 bits

Réparer un disque dur passé en RAW

Amiens Métier 39 : Gestion des réseaux informatiques. Jour 2, première partie. Durée : 3 heures

Représentation d un entier en base b

Informatique Industrielle Année Architecture des ordinateurs Note de cours T.Dumartin

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement

Procédure de sauvegarde pour AB Magique

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Réseaux IUP2 / 2005 IPv6

Structure de base d un ordinateur

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A) MODULE A5 Programmation de la CPU 314C-2DP

Logiciels DSPiy. DSPiyStudio logiciels et format des fichiers. incomplet

NiceLabel Guide de prise en main rapide

CONFIGURATION DE L AUTOMATE SIEMENS

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Les chaînes de caractères

La norme Midi et JavaSound

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Pré-requis installation

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

Mode d Emploi du Module d ASRock WiFi g

Competence Management System (Système de Gestion de Compétences)

DESKTOP Internal Drive. Guide d installation

Stockage des machines virtuelles d un système ESXi jose.tavares@hesge.ch & gerald.litzistorf@hesge.ch

Rappel sur les bases de données

Adressage des données des contrôleurs du WAGO-I/O-SYSTEM 750. Note d application

DMX MASTER I. Notice d utilisation. Lisez soigneusement la notice d utilisation avant d utiliser l appareil! Version 1.

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Unix/Linux I. 1 ere année DUT. Université marne la vallée

>> Lisez-moi d abord... Connecter le ZyXEL Prestige 650HW/HW-I

Guide de mise à niveau pas à pas vers Windows 8 CONFIDENTIEL 1/53

Priorités de calcul :

Manuel de référence des commandes SMS Advisor Advanced

Microprocesseur + Logiciel

9 rue Georges Besse BP FONTENAY LE FLEURY FRANCE Tél.:(33) fax:(33)

1. Présentation du TP

Transcription:

GPA770 Microélectronique appliquée Exercices série B.1 1. Considérez le segment de code suivant. Quelles instructions de branchement seront activées à la suite de l exécution du code suivant? Répondez oui ou non pour chaque instruction. LDAB #2 SUBB #$DF suite aux deux instructions, B = $02 - $DF = $23, avec N=0, Z=0, V=0 et C=1, donc: a) BEQ non d) BMI non b) BLO oui e) BHI non c) BGT oui f) BRA oui 2. Un instruction en mode d adressage direct (DIR) peut seulement accéder des données dans une étendue d adresses de 0000 à 00FF. Est-ce vrai que l instruction doit aussi être dans cette étendue d adresses? Non, l instruction peut être à n importe quel endroit dans toute la mémoire. 3. Quel est le seul mode d adressage d une instruction qui ne forme pas une adresse mémoire? Le mode d adressage inhérent (INH). 4. Quelle adresse mémoire sera accédée par le CPU pour les exemples suivants d adressage indexé, sachant que l index X pointe à l adresse mémoire $0800: a) LDAA 2, X addresse : $0802 b) STAA 2, +X addresse : $0802 c) LDAA -2, X addresse : $07FE 4. Donnez 2 instructions qui indiquent s il y a eu emprunt en affectant le bit d état C du CCR. La plupart des instructions qui effectuent un soustraction, e.g., SUBA, SBS, SBCB, SUBD, et CMPA., indiquent s il y a eu emprunt avec le bit C.

5. Est-ce que les bits N et Z du CCR peuvent les deux être égal à 0, ou bien à 1, suite à l exécution d une instruction LDAA? A la suite d un LDAA, les bits N et Z ne peuvent les deux être 1, mais peuvent les deux être 0. 6. Supposez qu on veut exécuter (d une façon indépendante) le segment de code suivant avec le 68HC12. Quelle sera la valeur des bits d état C, N, V et Z au registre CCR, ainsi que le contenu de l accumulateur A, juste après l exécution de la séquence de code? A = $00, Z = 1, C = 1, V = 0, N = 0 LDAA #$95 ADDA #$12 ADCA #%01011001 7. Écrire une séquence d instructions qui incrémente un nombre qui est représenté sur 2 octets (16 bits) en mémoire, sans devoir utiliser les accumulateurs A et B. Voir l exemple codé exb1_8 pour le code assembleur. RAMStart EQU $0800 ROMStart EQU $4000 ORG RAMStart NUM_DATA FDB $05FF ;exemple de valeur à incrémenter DONE ORG ROMStart LDX #RAMStart INC 1,X BNE DONE INC 0,X 8. Quel est le rôle d un assembleur? La conversion de fichiers source (qui sont écrits en langage assembleur) en code machine comprit par le CPU.

7. Supposez que le registre IY contient $C919, et que le registre SP contient $1000. Quel sera l impact sur le contenu de IY, de SP, et de la mémoire RAM juste après l exécution de l instruction PSHY? IY = SP = 8. Assemblez ce code assembleur à la main, et organiser le code machine résultant dans la table qui suit. Il s agit de montrer les valeurs numériques hexadécimales correspondant aux adresses mémoire après que ce programme a été assemblé. Combien d octets le programme principal occupe t-il en mémoire ROM? ORG $C010 RMB $10 AGAIN BRCLR 3, X+, $F0, AGAIN Adresse mémoire Valeur numérique (hex) C020 0F C021 32 C022 F0 C023 FC 9. Assemblez le segment de code assembleur suivant à la main, et organiser le code machine dans la table qui suit. ORG $1000 Var FCB $50 ORG $2000 LDAA Var Loop INCB SUBA #5 STAA Var BEQ Loop Adresse mémoire Valeur 1000 50 2000 B6 10 00 2003 52

2004 80 05 2006 7A 10 00 2009 27 F8 10. Est-ce qu on peut initialise un pointeur de pile SP avec l adresse de la première instruction du programme? Oui. En fait, on initialise souvent de cette façon car les programmes grandissent vers le bas, tandis que la pile grandit vers le haut. 11. Supposez que le registre IY contient $C919, et que le registre SP contient $1000. Quel sera l impact sur le contenu de IY, de SP, et de la mémoire RAM juste après l exécution de l instruction PSHY? IY = $C919 SP = $0FFE Adresse mémoire Valeur numérique $0FFE $C9 $0FFF $19 $1000 12. Écrivez un programme qui compte le nombre de bytes dans une table qui sont égal à zéro. La table consiste de 6 nombres et commence à l adresse $2000. Stocker les résultats à l adresse mémoire $5000. Result EQU $5000 Table EQU $2000 ORG $1100 CNT FCB $06 ORG $1000 LDAA CNT LDX #Table LDY #$0000 TEST CMPA #$00 BEQ DONE LDAB 1,X+

BNE Next INY Next DECA BRA TEST DONE STY Result 13. Quel est le contenu du registre d index IX après l exécution du programme suivant: LDS #$2000 PSHA PSHY TSX PULX [IX] = [IY] 14. En partant du programme suivant: ORG $F054 LDS #$7F88 LDY #$AB63 LDAB #$36 ABY PSHY SUBB #$2A a) Quel est le contenu des registres clés du 68HC12 après l'exécution du programme? B = $0C Y = $AB99 SP = $7F86 PC = $F061 CCR: N = 0, Z = 0 b) Quels sont les parties du CCR qui sont modifiées d après l exécution de PSHY et quels sont leurs nouveaux contenus? Aucunes sont modifiées

15. Répondez aux questions à partir du fichier probleme7.lst suivant: Fichier probleme7.lst ;******************************************* ; DATA ;******************************************* ORG $0010 0010 46 VALUE FCB $46 ;******************************************* ; PROGRAMME PRINCIPAL ;******************************************* ORG $C100 C100 CFE0 00 START LDS #$E000 C103 9610 LDAA VALUE C105 16C1 09 JSR SWAP C108 3F SWI ;****************************************** ; SWAP DES 4 BITS HIGH ET LOW DE L ACC A ;****************************************** C109 48 SWAP LSLA C10A 89 00 ADCA #0 C10C 48 LSLA C10D 89 00 ADCA #0 C10F 48 LSLA C110 89 00 ADCA #0 C112 48 LSLA C113 89 00 ADCA #0 C115 3D RTS Indiquez le contenu de PC, SP, A et des adresses mémoire $DFFF, $DFFE et $DFFD immédiatement après l exécution des instructions suivantes: a. JSR à l adresse C105: PC = C109 SP = DFFE A = 46 DFFD = pas connu DFFE = C1 DFFF = 08 b. LSLA à l adresse C10C: PC = C10D SP = DFFE

A = 18 DFFD = pas connu DFFE = C1 DFFF = 08 c. RTS à l adresse C115: PC = C108 SP = E000 A = 64 DFFD = pas connu DFFE = pas connu DFFF = pas connu Quel sera l impact sur le fonctionnement du programme si la valeur stockée aux adresses mémoires $C101 et $C102 est changée de $E000 aux valeurs suivantes? a. $C105: Le programme calcul correctement la valeur dans A, et termine comme il le doit. Cependant, il va écrire par-dessus le opcode JSR et l adresse de l instruction LDAA (mauvais style). b. $C116: Le programme ne calcul pas correctement la valeur dans A, et ne termine pas car il écrit par-dessus le op-code RTS et l opérant immédiat de l instruction ADCA. C1 sera ajouté à A, en ensuite l instruction INX sera exécutée (INX à un op-code de 08). 16. Décrivez brièvement la fonction du programme assembleur suivant. Result EQU $5000 Table EQU $2000 ORG $1100 CNT FCB $06 ORG $1000 LDAA CNT LDX #Table LDY #$0000 TEST CMPA #$00 BEQ DONE LDAB 1,X+ BNE Next INY Next DECA BRA TEST DONE STY Result

Ce programme compte le nombre d octets dans une table qui ont une valeur de $00. La table comprend de 6 valeurs numériques stockées à partir de l adresse mémoire $2000. La somme est stockée à l adresse mémoire $5000. 17. Écrivez une sous-routine qui échange les 4 bits du haut et les 4 du bas de l accumulateur A. Par exemple, si le contenu de A est $35, l exécution de la sous-routine va changer son contenu à $53. Voir l exemple codé exb1_4 pour le code assembleur. 18. Complétez le programme en assembleur suivant. Il additionne 2 nombres de 4 octets (32 bits) qui sont stockés aux adresses mémoire $0800-$0803 et $0804-$0807, respectivement. Le programme commence par l addition de l octet le moins significatif, et progresse vers l octet le plus significatif. Le résultat global de l addition est stocké sur 4 octets aux adresses mémoire $0810-$0813. ORG $4000 LDD $0802 ; addit. et stocker les 2 octets LSB ADDD $0806 STD $0812 LDAA $0801 ; addit. et stocker l octet le 2ème MSB ADCA $0805; incluant la retenue des 2 octets LSB STAA $0811 LDAA $0800 ; addit. et stocker l octet MSB ADCA $0804; incluant la retenue des 3 octets LSB STAA $0810 19. Indiquez brièvement les trois opérations de base qui sont effectuées par un contrôleur à logique floue afin de générer un signal de contrôle. Quelle est la fonction de chaque opération? RÉPONSE:

20. A partir du programme assembleur suivant: TABLE EQU $5000 ORG $0800 SOMME RMB 1 ORG $4000 LDAB #$00 LDX #TABLE LDAA #$00 VERIF CMPA #$05 BEQ ARRET ADDB 0,X INX INCA BRA VERIF ARRET STAB SOMME 5-1 (5 points) Décrivez brièvement la fonction du programme. RÉPONSE: 5-2 (15 points) Assemblez ce code assembleur à la main, et organiser le code machine résultant dans la table qui suit. Il s agit de montrer les valeurs numériques hexadécimales correspondant aux adresses mémoire après que ce programme a été assemblé. Adresse mémoire Valeur numérique (hex) $0800...... $4000

5-3 (5 points) Combien d octets le programme principal occupe t-il en mémoire ROM? RÉPONSE:

Chapitre 2 du livre de Pack et Barrett (p.69) Fundamental: 4, 5, 8, 9 et 10 Advanced: 3, 5 et 9 Challenging: 2 et 4 Réponses pour la partie Fundamental: Q4: CPD #1234 Q5: Z=0, C=0, H=0, N=1 Q8: l instruction est utilisée en mode indexé, et charge le contenu à l adresse mémoire IX+$20 dans A. (Le $20 représente le décalage par rapport au IX.) Q9: ORG $0000 FCB $12 FCB $10 Q10: Avec les instructions CMPA et BITB, le contenu de l accumulateur B reste inchangé à $34. (Seul le contenu du CCR sera affecté.) Réponses pour la partie Advanced: Q3: L utilisation du mode d adressage direct permet de réduire les dimensions du code, et le temps d exécution du programme. Q5: Il n y a aucune restriction en termes de l étendue d adressage effective. On peut accéder des valeurs numériques à des adresses qui s étendent de $0000 à $FFFF. Q9: On commence en calculant le nombre de bytes associé à chaque instruction. Les instructions DECA et TSTA consistent tous les deux d un op-code à 1 byte, tandis que BNE consiste d un op-code à 1 byte et d un opérant de 1 byte. L instruction BNE est utilisée pour vérifier le bit d état Z du CCR. Quand le bit Z est zéro, l instruction BNE modifie la valeur du PC selon: PC + décalage PC On doit donc avoir un décalage de 4 bytes vers l arrière, alors XX = $FC. La valeur $FC correspond au complément à 2 de -4 représentée sur 8 bits.

Réponses pour la partie Challenging: Q2: Le mode d adressage indexé devrait être utilisé pour copier un table de valeurs d un endroit à l autre en mémoire car, avec ce mode, l adresse effective est définit comme la somme d un registre d index (IX, IY, SP, PC) et d un décalage. En effet, ce mode permet d utiliser un registre d index comme pointeur au début d une liste, et le décalage pour bouger dans cette liste. Ce mode représente une façon flexible de représenter un adresse effective comme variable. Q4: Programme pour copier une table de 5 valeurs des adresses mémoires commencent à $5000 vers les adresses mémoires commencent à $6000. Voir l exemple codé exb1_10 pour le code assembleur. SOURCE: EQU $5000 ; adresse source DESTINATION: EQU $6000 ; adresse destination ORG $4000 NUM_DATA: FCB $05 ; nombre de bytes à copier ORG $4100 LDAA NUM_DATA ; #$05 --> A LDX #SOURCE ; source: $5000 --> IX LDY #DESTINATION ; destination:$6000 -> IY COPY: CMPA #$00 ; condition d arrêt BEQ DONE ; si A = $00, DONE LDAB 1,X+ ; source, poste inc. STAB 1,Y+ ; destin., poste inc. DECA BRA COPY