From 02dca2ea18c1d1e703b53df079283ff5557fb478 Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Mon, 26 Jan 2026 19:23:23 +0100 Subject: [PATCH] [SPCA] Design fixes --- .../spca/parts/00_asm/01_syntax/00_intro.tex | 2 +- .../parts/00_asm/01_syntax/01_registers.tex | 1 - .../00_asm/01_syntax/02_instructions.tex | 2 +- semester3/spca/spca-summary.pdf | Bin 789445 -> 789458 bytes 4 files changed, 2 insertions(+), 3 deletions(-) diff --git a/semester3/spca/parts/00_asm/01_syntax/00_intro.tex b/semester3/spca/parts/00_asm/01_syntax/00_intro.tex index ac85fa5..e7e8ef7 100644 --- a/semester3/spca/parts/00_asm/01_syntax/00_intro.tex +++ b/semester3/spca/parts/00_asm/01_syntax/00_intro.tex @@ -5,7 +5,7 @@ The most obvious difference between the two is that they invert the order of ope i.e. where the AT\&T syntax has the destination as the second argument, the Intel syntax puts it first. The state that is visible to us is: -\begin{itemize} +\begin{itemize}[noitemsep] \item PC (Program Counter) that contains the address of the next instruction \item Register file that contains the most used program data \item Condition codes that store status information about most recent arithmetic operation and are used for conditional branching diff --git a/semester3/spca/parts/00_asm/01_syntax/01_registers.tex b/semester3/spca/parts/00_asm/01_syntax/01_registers.tex index 8973d54..81bc90c 100644 --- a/semester3/spca/parts/00_asm/01_syntax/01_registers.tex +++ b/semester3/spca/parts/00_asm/01_syntax/01_registers.tex @@ -21,5 +21,4 @@ In other words, any 16 bit code would still work as previously, as e.g. the \tex The same happened again when extending to 64-bit, only this time the \texttt{r} prefix was used. So, the register \texttt{\$eax} was now the lower 32 bits of \texttt{\%rax}. - Additionally, the following registers are also available, with \texttt{X} to be substituted with 8 through 15: \texttt{\%rX} and the lower 32 bits \texttt{\%rXd} diff --git a/semester3/spca/parts/00_asm/01_syntax/02_instructions.tex b/semester3/spca/parts/00_asm/01_syntax/02_instructions.tex index eeffa01..4600062 100644 --- a/semester3/spca/parts/00_asm/01_syntax/02_instructions.tex +++ b/semester3/spca/parts/00_asm/01_syntax/02_instructions.tex @@ -5,7 +5,7 @@ The following postfixes are available: \texttt{b} (byte, 1 byte), \texttt{w} (wo The following options can be passed for source and destination: Registers, \content{Immediates} To use a constant value (aka Immediate) in an instruction, we prefix the number with \texttt{\$} (following number is decimal). -To use hex, we can use \texttt{\$0x}, etc. +To use hex, we can use \texttt{\$0x}, for binary, we can use \texttt{\$0b}, etc. \content{Memory addresses} To treat a register as a memory address, use parenthesis, e.g. \texttt{(\%rax)} interprets the value of \texttt{\%rax} as a memory address. The instruction will then read the number of bytes, as specified by the postfix of the instruction. diff --git a/semester3/spca/spca-summary.pdf b/semester3/spca/spca-summary.pdf index 876003732ec8fdc9287794664daf97dd9f4311e0..f01c508420c252c86fc2fb7b33b8f1429d0c52b9 100644 GIT binary patch delta 17121 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