From 4acb5a76257eccb8475c97233881176188cce8ce Mon Sep 17 00:00:00 2001 From: Garritt McCune Date: Tue, 23 Jul 2024 14:52:56 -0500 Subject: [PATCH] Updated the register and memory layout figure. --- chapter 1.tex | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/chapter 1.tex b/chapter 1.tex index 8325e7c..61a436a 100644 --- a/chapter 1.tex +++ b/chapter 1.tex @@ -6,27 +6,38 @@ Eight 32-bit general purpose registers are available for holding operands and me mov r1, bp - sizeof(void *) \end{verbatim} Finally we have the Program Counter which contains a 32 bit address that points to the next instruction to execute. -\tikzstyle{blockRow} = [rectangle, minimum width=10cm, minimum height=0.5cm, text centered, draw=black] \def\minY{-5} \def\maxY{5} \def\minX{-5} \def\maxX{5} \begin{figure}[h] \centering \begin{tikzpicture}[node distance=0cm] - \node [draw, fit={(\minX, 0) (0, 0.5)}, label=center:Status Register (Flags)] (flags) {}; - %\draw (\minX,0.5) node[above=1em] {31} rectangle (0, 1) node[midway] {Status Register (Flags)} node[above] (lsb) {0}; + \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 (flags); + \node[above =of flags] {Status Register}; \node[above left=of flags] {31}; \node[above right=of flags] {0}; - %\draw (\minX,-\pos / 2 - 0.5) rectangle (0, -\pos / 2) node[midway] (register1) {r1}; + \draw (r1); + \node[above=of r1] {General Purpose Registers}; + \node[above left=of r1] {31}; + \node[above right=of r1] {0}; - \foreach \pos in {1,...,8} { - \draw (\minX,-\pos / 2 - 0.5) rectangle (0, -\pos / 2) node[midway] (register\pos) {r\pos}; + \foreach \pos in {2,...,8} { + \node [draw, fit={(\minX, -\pos) (0, -\pos - 0.5)}, label=center:r\pos] (r\pos) {}; + \draw (r\pos); } - %\draw node[above=of register1] {General Purpose Registers}; - \draw (\maxX / 2, 1) rectangle (\maxX, \minY) node[midway] {Memory}; + \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}; + + %\draw (memory.north east) -- (memory.south west); + %\node at (memory.south east) {test}; \end{tikzpicture} \caption{Register Bit Layout} \end{figure}