\documentclass[12pt]{article}


\usepackage[brazil]{babel}
\usepackage[latin1]{inputenc}

\setlength{\unitlength}{28pt}
\setlength{\textwidth}{15cm}
\setlength{\textheight}{26cm}
\setlength{\oddsidemargin}{0.1in}
\setlength{\evensidemargin}{0.1in}
\voffset=-2.5cm
\hoffset=1cm
\newcommand{\p}{\vspace{1.44ex}}
\font\eucl=/home/mac/song/brasao/ime scaled 1000 %era 700 %%%%%%%%%%%
%\font\eucl=brasao-ime scaled 700 %860
\font\usp=cmbx10 scaled \magstep1  %nao funciona no latex ????
\font\ime=cmr10
\font\cp=cmr9
\font\ll=cmss10


\begin{document}

\begin{center}
{\large \bf MAC-412 Organização de Computadores\\
\p
Lista de Exerc\'{\i}cios No. 5}
\end{center}
\p

Considere a micro-arquitetura MIC vista em classe que implementa
as instruções no nível convencional (linguagem de máquina).

Suponha uma nova instrução no nível convencional (linguagem de máquina)
chamada NOVA que faz o seguinte: 

{\small
Lê a memória M[0] e coloca o valor lido em AC,\\
Multiplica SP por 16 e coloca o resultado em SP,\\
Calcule o valor SP como sendo SP + AC\\
Se  SP for zero então some 1 a AC\\
caso contrário faz AC igual a zero.\\
Retorne à posição 0\\
}

Suponha que a instrução NOVA já está lida e encontra-se
no IR. Suponha ainda que já foi feita a decodificação e
sabe-se que se trata da instrução NOVA.
Escreva, em micro-assembler, o trecho
das micro-instruções
que correspondem a execução de NOVA.  Suponha que
o início desse trecho é na linha 21. Use o menor número possível
de micro-instruções, caso contrário pontos serão descontados.

% Solucao:
% **********
% 
% 21  mar:=0; rd
% 22  SP:=lshift(SP+SP); rd
% 23  SP:=lshift(SP+SP)
% 24  SP:=SP+mbr; if z goto 26
% 25  AC:=0; goto 0
% 26  AC:=AC+1;goto 0

\end{document}

