From a5f0aa40d220265c440c651aa859593b391c9f12 Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Sun, 25 Jan 2026 13:41:08 +0100 Subject: [PATCH] [SPCA] Add more notes on conditional moves and jumps --- .../03_operations/02_condition-codes.tex | 3 +++ semester3/spca/parts/04_exam.tex | 1 + semester3/spca/spca-summary.pdf | Bin 788923 -> 789234 bytes 3 files changed, 4 insertions(+) create mode 100644 semester3/spca/parts/04_exam.tex diff --git a/semester3/spca/parts/00_asm/03_operations/02_condition-codes.tex b/semester3/spca/parts/00_asm/03_operations/02_condition-codes.tex index 16faddd..c14488c 100644 --- a/semester3/spca/parts/00_asm/03_operations/02_condition-codes.tex +++ b/semester3/spca/parts/00_asm/03_operations/02_condition-codes.tex @@ -20,6 +20,9 @@ and \texttt{OF} is set as above, where \texttt{t = a - b}. Another instruction that is used is \texttt{testX src2, src1} (X again a size postfix, easier: \texttt{testX b, a}), and acts like computing \texttt{a \& b} and where \texttt{ZF} is set if \texttt{a \& b == 0} and \texttt{SF} is set if \texttt{a \& b < 0}. +\inlineex Assume \texttt{x = src1}, \texttt{y = src2} in \texttt{cmpl y, x}. Then, when you use the condition codes with \texttt{cmovle}, +the instruction is executed only if $x \leq y$ (i.e. the operands of the compare instructions in the AT\&T syntax are flipped) + \content{Zeroing register} We can use a move instruction, but that is less efficient than using \texttt{xorl reg, reg}, where \texttt{reg} is the 32-bit version of the reg we want to zero. This works because on 32-bit operations, the upper 32 bit of the 64 bit register will be zeroed. diff --git a/semester3/spca/parts/04_exam.tex b/semester3/spca/parts/04_exam.tex new file mode 100644 index 0000000..cebbbab --- /dev/null +++ b/semester3/spca/parts/04_exam.tex @@ -0,0 +1 @@ +As of HS2025, the following things can be expected at the exam: diff --git a/semester3/spca/spca-summary.pdf b/semester3/spca/spca-summary.pdf index 72a76b395baadac58e0e865697acbd2f4d55fdf4..43f8d0b9b8126fd486b30fb8a266d2afe0bf94d9 100644 GIT binary patch delta 13745 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