@@ -8,7 +8,7 @@ \section{Maskinkod}
88
99 \halfblankline
1010
11- \ti {Förberedelse inför laboration 4}
11+ \ti {Förberedelse inför laboration 4! }
1212
1313 \halfblankline
1414 \begin {itemize }
@@ -56,18 +56,49 @@ \section{Maskinkod}
5656 \node (al) [rectangle, draw, fill=green!20, below=of hl, text width=6em, text centered, minimum height=2em] {Assembly};
5757 \node (mc) [rectangle, draw, fill=red!20, below=of al, text width=6em, text centered, minimum height=2em] {Maskinkod};
5858 \node (hw) [rectangle, draw, fill=orange!20, below=of mc, text width=6em, text centered, minimum height=2em] {Hårdvara};
59-
59+
6060 \draw [->] (hl) -- (al);
6161 \draw [->] (al) -- (mc);
6262 \draw [->] (mc) -- (hw);
63- }
64- \end {tikzpicture }
63+ }
64+ \end {tikzpicture }
6565 \end {center }
6666 \end {column }
6767 \end {columns }
6868\end {frame }
6969
7070
71+ \begin {frame }[fragile,t]
72+ \frametitle {Exempel: ordpussel}
73+ \vspace {1em}
74+
75+ Kul exempel där lågnivåtänk gör stor skillnad:
76+
77+ \url {https://www.youtube.com/watch?v=_-AfhLQfb6w}
78+
79+ \blankline
80+
81+ \begin {itemize }
82+ \ii {Problem: hitta fem engelska fembokstavsord som tillsammans
83+ använder 25 olika bokstäver (en bokstav blir över).}
84+ \ii {Naiv lösning: prova alla kombinationer av ord
85+ $ \rightarrow $ \emph {orimligt många }, tog 30+ dagar.}
86+ \ii {Snabbare lösningar från tittare:}
87+ \begin {itemize }
88+ \ii {Representera varje ord som ett 26-bitars tal (en bit per bokstav).}
89+ \ii {Kolla överlapp med snabba bitoperationer (\texttt {\& }, \texttt {| }).}
90+ \ii {Bygg en graf: sök efter kombinationer utan gemensamma bokstäver.}
91+ \ii {Smart filtrering och pruning $ \rightarrow $ lösning på millisekunder.}
92+ \end {itemize }
93+ \end {itemize }
94+
95+ \vspace {1em}
96+ \ti {\emph {Slutsats: } Rätt datastruktur och lågnivåtänk kan
97+ ge enorma hastighetsvinster.}
98+ \end {frame }
99+
100+
101+
71102\begin {frame }[fragile,t]
72103 \frametitle {Vad är en dator?}
73104
@@ -289,6 +320,10 @@ \section{Maskinkod}
289320
290321\begin {frame }[fragile,t]
291322 \frametitle {Maskininstruktioner}
323+ \begin {figure }
324+ \centering
325+ \includegraphics [height=2.2cm]{Mips32_addi_cr}
326+ \end {figure }
292327
293328 \ti {Komponenter av en instruktion}
294329 \begin {itemize }
@@ -300,7 +335,7 @@ \section{Maskinkod}
300335 % \begin{envi}
301336 % \begin{figure}
302337 % \includegraphics{Mips32_addi}
303- % \caption{By en:User:Booyabazooka - \url{http://en.wikipedia.org/wiki/Image:Mips32_addi.svg}, CC BY-SA 3.0, \url{https://commons.wikimedia.org/w/index.php?curid=1362890}}
338+ % % \caption{By en:User:Booyabazooka - \url{http://en.wikipedia.org/wiki/Image:Mips32_addi.svg}, CC BY-SA 3.0, \url{https://commons.wikimedia.org/w/index.php?curid=1362890}}
304339 % \end{figure}
305340 % \end{envi}
306341
@@ -342,7 +377,8 @@ \section{Maskinkod}
342377 \blankline
343378 \ti {Relation till maskinkod}
344379 \begin {itemize }
345- \ii {Opcode för \texttt {ADD } + binär representation av register (\texttt {R1 }, \texttt {R2 })}
380+ \ii {Varje OP Code har binära representationer.}
381+ \ii {Register och andra operanders adresser representeras också binärt.}
346382 \ii {Exempel: \texttt {ADD R1, R2, R2 } $ \rightarrow $ \texttt {1001 0001 0010 0010 }}
347383 \end {itemize }
348384\end {frame }
0 commit comments