ASR Architecture des ordinateurs TD2 & TD/TP2 (semestre 1, période 2)
24/10/07 ASR03-04TD_06V1 20
- éventuellement, la zone pour des données NON initialisées ( de bssStart à bssEnd ).
Cette zone peut se partager le reste de la mémoire RAM attribuée à l’utilisateur avec la
PILE d’exécution.
Commenter l’utilisation de la directive ORG (- qui n’est pas une instruction mais une directive
à « ASSEMBLE » -)… Commenter le fait que cet assembleur « simplifié » ASSEMBLE ne
propose pas l’utilisation de noms symboliques pour les variables : on indiquera directement
des adresses dans la mémoire RAM. Par contre, on dispose d’étiquettes symboliques pour
les ruptures de séquence. Leur transformation est prise en charge par ASSEMBLE.
Rappel : L’ensemble de la mémoire comporte ici 256 octets de 00 à FF. La mémoire utilisateur
s’étend de 00 à BF. Le système utilise la zone C0 à FF pour simuler la « zone vidéo ». Il utilise
également la zone 0 à xx pour la table des vecteurs d’interruptions. La PILE d’exécution n’est
pas utilisée dans ce TD/TP, elle débute en BF (- voir TD/TP partie Système de ASR -)…
Relever le schéma d’occupation de la RAM. Expliquer précisément le rôle et le fonctionnement
de « jmp ».
Le fonctionnement du simulateur, de l’assembleur ASSEMBLE et du processeur SMS
Classer et expliciter :
Les directives pour le simulateur « assemble », « run » et « step », « clo »etc. ;
Les directives pour l’assembleur ASSEMBLE (- DB, ORG -) ;
Les directives (- instructions en binaire après ASSEMBLE -) pour le processeur.
2. Registres, transferts d’information entre registres et mémoire [Exercices série 2]
Permutation de cases mémoires
a) Écrire un premier programme en langage machine ( mov01.asm ) qui réalise l’échange du
contenu de cases de la mémoire RAM. Ces cases contiennent :
- Deux valeurs entières (représentées en complément à 2 sur 8 bits) : ces valeurs sont
données en hexadécimal et non en décimal ou en binaire. Elles sont définies ici comme
des données initialisées (zone data ) et non saisies au « clavier ».
- Deux caractères ASCII : ils sont également fournis comme des données initialisées.
Rappel : il est nécessaire ici de passer par des registres. Vérifier, en consultant la visualisation
de la RAM, le résultat de la permutation. Les choix retenus (- hexadécimal ou ASCII -) sont en
rapport avec la directive « DB » disponible.
Utilisation de la zone vidéo pour la visualisation (de valeurs codées en ASCII…)
b) Compléter le programme ( mov02.asm ) en transférant, avant et après la permutation, les
deux caractères ASCII dans la « zone vidéo ». On les place en position D0 et E0 avant la
permutation ; en position D2 et E2 après. En C1, on placera le message « : ».
Rappeler ( et tester ) comment sont codés, en binaire et en hexadécimal, les caractères
ASCII :
{0, …, 9], {A, …, Z}et {+, -, /, *, % }.
Remarque : Que faudrait-il faire pour visualiser, en zone vidéo, les deux « valeurs
entières » codant les caractères au lieu des deux caractères ASCII ? Ne pas écrire ce
programme pour l’instant, voir plus loin dans les applications.