\documentstyle{book}\pagestyle{empty} \textheight 250mm \textwidth 130mm %\hoffset -22mm \voffset -24mm \begin{document}\pagestyle{empty} \noindent \begin{tabular}{l c r} \hline Institut Galil\'ee - Universit\'e Paris 13 & \qquad\qquad & Informatique\\ DEUG STPI 1\`ere ann\'ee & \qquad\qquad & Semaine du 18 octobre 1999\\ \hline \end{tabular} \bigskip\bigskip \begin{center} {\Large TP2}\\ {Un langage simple pour un processeur simplissime : MAMIAS} \end{center} \bigskip\bigskip {\large Prol\'egom\`enes\footnote{prol\'egom\`enes (masculin pluriel, du grec $\pi\rho o \lambda\epsilon\gamma$\'o$\mu \epsilon\nu\alpha$) = avant-propos}. Fonctionnement.} \bigskip\bigskip MAMIAS est un langage illustrant le codage des instructions pour un proces\-seur ``simple'' (confer TD 2 sur les cycles d'ex\'ecutions). Un programme MAMIAS est une suite de mots de 8 bits, les trois premiers bits codant l'instruction, les 5 suivants codant une valeur. On rappelle le tableau suivant \bigskip \begin{tabular}{|l|l|l|} \hline 000 & INIT $x$ & Acc$\leftarrow x$\\ \hline 001 & CHARGE $n$ & Acc$\leftarrow (n)$\\ \hline 010 & RANGE $n$ & $(n)\leftarrow$ Acc\\ \hline 011 & ET $n$ & Acc $\leftarrow$ Acc ET $(n)$ (op\'eration binaire)\\ \hline 100 & SAUTE $n$ & si Acc$=0$ alors aller \`a l'adresse $n$\\ \hline 101 & ADD $n$ & $(n) \leftarrow$ Acc$+(n)$\\ \hline 110 & DEC $x$ & \begin{minipage}{7cm} d\'ecale le contenu de Acc de $x$ positions:\\ -vers la gauche si $x\geq 0$\\ -vers la droite si $x<0$\\ \qquad \end{minipage}\\ \hline 111 & STOP & arr\^ete l'ex\'ecution \\ \hline \end{tabular} Ces quelques commandes (les ``briques'' de base) permettent de simuler tous les programmes (si on fait abstraction de la limitation de MAMIAS \`a 32 cases ou ``mots'' m\'emoires). Le contenu de la case num\'ero $n$ est not\'e $(n)$. \bigskip\bigskip {\large Exercice 1. Compr\'ehension.} \bigskip\bigskip Utilisez MAMIAS.exe pour d\'eterminer ce que contiennent l'accumulateur et le mot m\'emoire (5) apr\`es ex\'ecution des instructions suivantes\\ \noindent 0:\qquad 00000011\\ 1:\qquad 01000101\\ 2:\qquad 00011101\\ 3:\qquad 10100101\\ 4:\qquad 11100000\\ \bigskip\bigskip {\large Exercice 2. Programmation.} \bigskip\bigskip a. \'Ecrivez un programme MAMIAS qui teste le signe de la donn\'ee cod\'ee dans le mot m\'emoire (9). Ce programme doit coder la valeur 1 dans le mot m\'emoire (10) si (9) est positive ou nulle et 0 sinon. \bigskip\bigskip b. \'Ecrivez un programme qui r\'ealise la soustraction entre donn\'ee cod\'ee dans le mot m\'emoire (10) et celle cod\'ee dans le mot m\'emoire (11) (on suppose que cette valeur est positive ou nulle). Le r\'esultat doit \^etre cod\'e dans le mot m\'emoire (12). \bigskip \end{document}