diff --git a/chapter 1.tex b/chapter 1.tex index 61a436a..dde6d6c 100644 --- a/chapter 1.tex +++ b/chapter 1.tex @@ -12,19 +12,22 @@ Finally we have the Program Counter which contains a 32 bit address that points \begin{figure}[h] \centering \begin{tikzpicture}[node distance=0cm] + \node [draw, fit={(\minX, 1.0) (0, 1.5)}, label=center:Program Counter] (pc) {}; \node [draw, fit={(\minX, 0) (0, 0.5)}, label=center:Flags] (flags) {}; \node [draw, fit={(\minX, -1) (0, -1.5)}, label=center:r1] (r1) {}; \node [draw, fit={(\maxX / 2, 0) (\maxX, \minY)}, label=center:Memory] (memory) {}; + \draw (pc); + \node[above =of pc] {Status Registers}; + \node[above left =of pc] {31}; + \node[above right =of pc] {0}; + \draw (flags); - \node[above =of flags] {Status Register}; - \node[above left=of flags] {31}; - \node[above right=of flags] {0}; \draw (r1); - \node[above=of r1] {General Purpose Registers}; - \node[above left=of r1] {31}; - \node[above right=of r1] {0}; + \node[above =of r1] {General Purpose Registers}; + \node[above left =of r1] {31}; + \node[above right =of r1] {0}; \foreach \pos in {2,...,8} { \node [draw, fit={(\minX, -\pos) (0, -\pos - 0.5)}, label=center:r\pos] (r\pos) {}; @@ -33,8 +36,8 @@ Finally we have the Program Counter which contains a 32 bit address that points \draw (memory); \node [above =of memory] {Linear Memory (2\textsuperscript{32} Bytes)}; - \node [above right =of memory, yshift=-1em] {0x00000000}; - \node [below right =of memory, yshift=1em] {0xFFFFFFFF}; + \node [above right =of memory, yshift=-1em] {0}; + \node [below right =of memory, yshift=1em] {2\textsuperscript{32 - 1}}; %\draw (memory.north east) -- (memory.south west); %\node at (memory.south east) {test}; diff --git a/chapter 2.tex b/chapter 2.tex index 4e26f0a..0b707ac 100644 --- a/chapter 2.tex +++ b/chapter 2.tex @@ -10,7 +10,7 @@ #1 & #2 & #3 & #4 \\ \hline \end{tabularx} - \paragraph{Description} #5. + \paragraph{Description} #5 \end{minipage} } @@ -69,4 +69,6 @@ All instructions are a fixed width of 32-bits. There are two basic encoding sche \section{Instructions} The /r represents a byte that specifies a register. /iX is for the immediate data type, where \textit{X} defines the width, which are 8, 16, or 32 bits. \subsection{Add} -\OpcodeTable{01 /r /r}{add /r, /r}{Register}{Register}{Sums \textit{Operand 1} and \textit{Operand 2} placing the result into \textit{Operand 1}.} \ No newline at end of file +\OpcodeTable{01 /r /r}{add /r, /r}{Register}{Register}{Sums \textit{Operand 1} and \textit{Operand 2} placing the result into \textit{Operand 1}.} +\subsection{Mov} +\OpcodeTable{04 /mod /r /r}{mov /mod /r, /r}{Register}{Register}{Copies the 32-bit value from \textit{Operand 2} to \textit{Operand 1}.}} \ No newline at end of file