\documentclass[11pt]{article}
%\usepackage{a4}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage[french]{babel}
\usepackage{epsfig}
\renewcommand{\baselinestretch}{1}
\newcommand{\bm}[1]{\mbox{\boldmath $ #1 $ }}
\newcommand{\model}[1]{\mbox{\boldmath$#1$\unboldmath}}
\newcommand{\emmodel}[1]{\mbox{\em {\bf #1}}}
\newcommand{\vs}{\vspace{1cm}}
\newcommand{\hs}{\hspace{1cm}}
\newcommand{\pp}{\vspace{6 mm}}
\newcommand{\ov}{\overline}

\newcommand{\N}{\mathbb N}
\newcommand{\Z}{\mathbb Z}
\newcommand{\Q}{\mathbb Q}
\newcommand{\R}{\mathbb R}
\newcommand{\C}{\mathbb C}

\begin{document}
\pagestyle{empty}
\noindent {\bf Institut Galilée - Université Paris 13} 
\hfill{\bf Année 1999-2000}\\
{\bf DEUG STPI 1ère année}
\hfill {\bf Découverte : Informatique}\\

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{center}
{\large {\bf 
Partiel d'informatique\\
}}
Vendredi 19 novembre 1999\\
(durée : 3 heures)
\end{center}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Exercice~1}
\noindent
\begin{enumerate}
\item 
La plupart des claviers comportent un certain nombre de symboles diff\'erents.
Quel nom donne-t-on au syst\`eme utilis\'e actuellement (majoritairement)
pour coder les diff\'erents caract\`eres que nous utilisons couramment~?
\item 
D\'etaillez un peu le fonctionnement de ce codage.
\item 
Si l'on souhaitait utiliser en m\^eme temps les caract\`eres chinois,
arabes etc., on aurait au total besoin de plusieurs milliers de caract\`eres 
diff\'erents, ce qui n'est pas possible avec le codage pr\'ec\'edent.
Quelle solution proposez-vous~?
\end{enumerate}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Exercice~2~: cycle d'exécution}
\noindent
Considérons le programme résidant en mémoire principale de la figure ci-dessous~: 
\begin{center}
\epsfig{file=partiel1_uct1.eps, angle=-90, width=8cm}
%	\epsfig{file=td2_uct2.ps, width=8cm}
%	\leavevmode\epsfxsize=9truecm\epsfysize=7truecm\epsfbox{ td2_uct2.ps  }
\end{center}
\begin{enumerate}
\item 
Traduisez-le en langage machine (code binaire sur $8$ bits). \\ 
Note~: vous pouvez vous aider des instructions rappel\'ees en annexe.
\item 
Executez-le ``à la main'' pour compléterer le tableau suivant~: \\
\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|}
\hline
fin du cycle $n^o$& Instruction	& CP	& Acc	& (29)	& (30)	& (31)	   \\
\hline
\dotfill & \dotfill & \dotfill & \dotfill & \dotfill & \dotfill	& \dotfill \\
\dotfill & \dotfill & \dotfill & \dotfill & \dotfill & \dotfill	& \dotfill \\
\vdots	 & \vdots   & \vdots   & \vdots	  & \vdots   & \vdots	& \vdots   \\
\dotfill & \dotfill & \dotfill & \dotfill & \dotfill & \dotfill	& \dotfill \\
\hline
\end{tabular}
\end{center}
%	\item 
%	Que fait ce programme~?

\end{enumerate}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Exercice~3~: un peu d'assembleur}
\noindent
\'Ecrire un programme MAMIAS qui permet de réaliser les instructions suivantes~: \\
$(n) \leftarrow (n) + x$\\
$(n) \leftarrow (p)$\\
$(n) \leftarrow (p) + (q)$\\
Par exemple, l'instruction ``$(n) \leftarrow x$'' peut-être réalisée par le programme~: \\
\begin{tabular}{rcl}
$0$ & : & INIT $x$    \\
$1$ & : & RANGE $n$ \\
\end{tabular}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Exercice~4~: changement de base}
\noindent
\begin{enumerate}
\item 
Remplissez les cases vides du tableau suivant~: 
\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|}
\hline
base 2	 & base 8   & base 10  & base 16  & base 64	\\ \hline
10	 & \dotfill & \dotfill & \dotfill & \dotfill \\
\dotfill & 10	    & \dotfill & \dotfill & \dotfill \\
\dotfill & \dotfill & 10       & \dotfill & XXXXXX   \\
\dotfill & \dotfill & \dotfill & 10	     & XXXXXX   \\
\dotfill & \dotfill & \dotfill & \dotfill & 10	\\ \hline
\end{tabular}
\end{center}
\item 
Convertir $123_4$ en base $10$, 
\item 
Convertir $57_{10}$ et $AF67803BC012F3456_{16}$ en base $4$.
\item 
Convertir en binaire le nombre hexadécimal suivant~: $A69D_{16}$.

\end{enumerate}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Exercice~5~: codage et opérations arithmétiques}
\noindent
\begin{enumerate}
\item 
En supposant que les nombres sont représentés sur $6$ bits, 
faire les calculs suivants en complément à $1$ et en complément à $2$~:
\begin{enumerate}
\item $15_{10} + (20_{10} - 10_{10})$, et 
\item $(15_{10} + 20_{10}) - 10_{10}$.
\end{enumerate}
Note : on utilisera le fait que : $a - b = a + (-b)$.
\item 
\begin{enumerate}
\item 
Convertir en binaire les deux entiers suivants écrits en hexadécimal~: 
$BE400000$ et $BF200000$. 
\item
Effectuer l'opération suivante (sur $8$ bits)~:
$BE400000 + BF200000$
\end{enumerate}
\item 
Faire le calcul suivant sur des nombres de $8$ bits en complément à 1 
et en complément à 2~: 
$$11010010 + 10111100 \qquad \qquad 11010010 - 10111100.$$
Donner les résultats en décimal et dire s'ils sont corrects.
\item 
Donner la valeur décimale signéz du nombre $B7_{16}$ codé en complément à 2 
sur $8$ bits.
\end{enumerate}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Exercice 6}
\noindent
$\cal{E.T.}$ revient sur la Terre muni de son t\'el\'ephone portable,
son combin\'e comporte 4 chiffres. Il veut joindre sa famille.
Il appelle les renseignements intergalactiques et une charmante 
voix lui dit qu'il doit composer le numéro~: 
$99_{10}$~$03_{10}$~$14_{10}$~$15_{10}$~$92_{10}$~$65_{10}$. 
Pouvez-vous l'aider~?\\
${\cal E.T.}$ doit appuyer successivement sur les touches~: \dotfill

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{}
\subsection*{Annexe : instructions en MAMIAS}
\noindent
\begin{center}
\begin{tabular}{|l|l|l|}
\hline
code & mn\'emonique & signification \\
\hline \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 \mbox{Acc} + (n)$ \\
\hline
110 & DEC $x$ & d\'ecale le contenu de Acc de $x$ positions~: \\
    &         &  - vers la gauche si $x\geq 0$ \\
    &         &  - vers la droite si $x<0$ \\
\hline
111 & STOP & arr\^ete l'ex\'ecution. \\
\hline
\end{tabular}
\end{center}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{}
\subsection*{Barème indicatif}
\noindent

\end{document}