diff --git a/notes/.obsidian/plugins/obsidian-to-anki-plugin/data.json b/notes/.obsidian/plugins/obsidian-to-anki-plugin/data.json
index d1a6648..f4f3fca 100644
--- a/notes/.obsidian/plugins/obsidian-to-anki-plugin/data.json
+++ b/notes/.obsidian/plugins/obsidian-to-anki-plugin/data.json
@@ -333,7 +333,7 @@
"_journal/2024-02/2024-02-27.md": "f75a0d04a875aeee932343dae0c78768",
"filesystems/index.md": "cbd2b0290a3ba3b32abec4bd8bfefad5",
"filesystems/cas.md": "d41c0d2e943adecbadd10a03fd1e4274",
- "git/objects.md": "03c452a26374b1a99983157f236c5a3d",
+ "git/objects.md": "887ebb42a6fb7c0ff448dd482ba53922",
"git/index.md": "ca842957bda479dfa1170ae85f2f37b8",
"encoding/integer.md": "54130a02e1fc0a6033ce6ab7a781b0ae",
"_journal/2024-02-29.md": "f610f3caed659c1de3eed5f226cab508",
@@ -756,7 +756,7 @@
"_journal/2024-08/2024-08-15.md": "7c3a96a25643b62b0064bf32cb17d92f",
"_journal/2024-08-17.md": "b06a551560c377f61a1b39286cd43cee",
"_journal/2024-08/2024-08-16.md": "da1127a1985074a3930b4c3512344025",
- "set/order.md": "3bf63dd9c8ce6d2b4c6905dab0bd4aad",
+ "set/order.md": "07f5799751f0b4080c13626a0b8c95ef",
"_journal/2024-08-18.md": "6f8aec69e00401b611db2a377a3aace5",
"ontology/philosophy/properties.md": "41b32249d3e4c23d73ddb3a417d65a4c",
"_journal/2024-08-19.md": "94836e52ec04a72d3e1dbf3854208f65",
@@ -764,7 +764,7 @@
"_journal/2024-08/2024-08-17.md": "b06a551560c377f61a1b39286cd43cee",
"calculus/bounds.md": "cbae7421eaa096cd17a2f9de079f593d",
"calculus/index.md": "5ee4d950533ae330ca5ef9e113fe87f3",
- "x86-64/instructions/conditions.md": "c5571deac40ac2eeb8666f2d3b3c278e",
+ "x86-64/instructions/conditions.md": "e95de2b5a5e47a8d00e66020a5c6ee15",
"_journal/2024-08-20.md": "e8bec308d1b29e411c6799ace7ef6571",
"algebra/arch-prop.md": "bca3724ef5aae3f7f20907108087af47",
"_journal/2024-08/2024-08-19.md": "94836e52ec04a72d3e1dbf3854208f65",
@@ -794,7 +794,7 @@
"_journal/2024-08/2024-08-25.md": "a3337b4658677810127350ef3e0ad146",
"_journal/2024-08-27.md": "d9ffc6ea2128ab5a86ab5f2619206736",
"_journal/2024-08/2024-08-26.md": "6f40716e2f01cd097d4881259babf1ba",
- "c17/types/conversions.md": "843ece1b41a227618c797b25cbcdd98b",
+ "c17/types/conversions.md": "4e46d7814bb6e9374be528567e6d1ac5",
"_journal/2024-08-28.md": "c9c0e7ab8bcbf23d6332b3f19ec4d997",
"_journal/2024-08-30.md": "ff50eb8dd5124c20d4fa291d8b675238",
"_journal/2024-08/2024-08-28.md": "92e653379c8d7594bb23de4b330913fe",
@@ -833,7 +833,13 @@
"_journal/2024-09/2024-09-20.md": "69cf79bb0cb8c116a9c0f671671fdc44",
"_journal/2024-09-22.md": "2d00b00b4eb9964465f30210187603cf",
"_journal/2024-09/2024-09-21.md": "2e6425f4db0187082947c3e0cb24f754",
- "algorithms/bfs.md": "2734400c0a5843c92adbc2a0f06d4d56"
+ "algorithms/bfs.md": "bc322d510fe25389b3996344b126e497",
+ "_journal/2024-09-23.md": "c0a87ca092a36e2761e844f34296f2f7",
+ "_journal/2024-09/2024-09-22.md": "c27835ce1d82d10c906b40b420145d0c",
+ "_journal/2024-09-25.md": "4527ac5c132aaf5adc6e624c5e4aca5e",
+ "_journal/2024-09/2024-09-23.md": "d5589199e01c1794774b310e94d89374",
+ "_journal/2024-09-26.md": "ce334b0576d6d7495150abd5c7e1ce61",
+ "_journal/2024-09/2024-09-25.md": "c8a3414e27c8ce635fe995c2dfbf6019"
},
"fields_dict": {
"Basic": [
diff --git a/notes/_journal/2024-09-26.md b/notes/_journal/2024-09-26.md
new file mode 100644
index 0000000..4e890fa
--- /dev/null
+++ b/notes/_journal/2024-09-26.md
@@ -0,0 +1,11 @@
+---
+title: "2024-09-26"
+---
+
+- [ ] Anki Flashcards
+- [x] KoL
+- [x] OGS
+- [ ] Sheet Music (10 min.)
+- [ ] Korean (Read 1 Story)
+
+* Notes on [[conditions|conditional transfer]] of control vs. data.
\ No newline at end of file
diff --git a/notes/_journal/2024-09-22.md b/notes/_journal/2024-09/2024-09-22.md
similarity index 100%
rename from notes/_journal/2024-09-22.md
rename to notes/_journal/2024-09/2024-09-22.md
diff --git a/notes/_journal/2024-09/2024-09-23.md b/notes/_journal/2024-09/2024-09-23.md
new file mode 100644
index 0000000..4d14d5f
--- /dev/null
+++ b/notes/_journal/2024-09/2024-09-23.md
@@ -0,0 +1,9 @@
+---
+title: "2024-09-23"
+---
+
+- [x] Anki Flashcards
+- [x] KoL
+- [ ] OGS
+- [ ] Sheet Music (10 min.)
+- [ ] Korean (Read 1 Story)
\ No newline at end of file
diff --git a/notes/_journal/2024-09/2024-09-25.md b/notes/_journal/2024-09/2024-09-25.md
new file mode 100644
index 0000000..c49a647
--- /dev/null
+++ b/notes/_journal/2024-09/2024-09-25.md
@@ -0,0 +1,11 @@
+---
+title: "2024-09-25"
+---
+
+- [x] Anki Flashcards
+- [x] KoL
+- [x] OGS
+- [ ] Sheet Music (10 min.)
+- [ ] Korean (Read 1 Story)
+
+* Notes on [[conditions#JMP|jump instructions]].
\ No newline at end of file
diff --git a/notes/algebra/sequences/delta-constant.md b/notes/algebra/sequences/delta-constant.md
index 2a7d906..8b55e0e 100644
--- a/notes/algebra/sequences/delta-constant.md
+++ b/notes/algebra/sequences/delta-constant.md
@@ -70,7 +70,7 @@ END%%
%%ANKI
Cloze
-We say a sequence is {$\Delta^k$-constant} when the {$k$th differences is constant}.
+We say a sequence is {$\Delta^k$-constant} when the {$k$th differences are constant}.
Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf).
END%%
diff --git a/notes/algorithms/bfs.md b/notes/algorithms/bfs.md
index 2ca7e1d..ac5312b 100644
--- a/notes/algorithms/bfs.md
+++ b/notes/algorithms/bfs.md
@@ -135,7 +135,7 @@ END%%
%%ANKI
Basic
Which standard graph representation has worst-case BFS running time of $O(\lvert V \rvert + \lvert E \rvert)$?
-Back: The adjacency-matrix representation.
+Back: The adjacency-list representation.
Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
END%%
@@ -148,6 +148,14 @@ Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (
END%%
+%%ANKI
+Basic
+Which standard graph representation has worst-case BFS running time of $O(\lvert V \rvert^2)$?
+Back: The adjacency-matrix representation.
+Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).
+
+END%%
+
%%ANKI
Basic
Given graph $\langle V, E \rangle$ with adjacency-matrix representation, what is the worst-case run time of BFS?
diff --git a/notes/c17/types/conversions.md b/notes/c17/types/conversions.md
index 3f1fbc7..0485439 100644
--- a/notes/c17/types/conversions.md
+++ b/notes/c17/types/conversions.md
@@ -259,7 +259,7 @@ END%%
%%ANKI
Basic
-When is the type domain of `a + b` equal to `signed int`?
+When is the common real type of `a + b` equal to `signed int`?
```c
unsigned short a;
signed int b;
@@ -295,7 +295,7 @@ END%%
%%ANKI
Basic
-Suppose `a` and `b` has signed and unsigned types. When is `a + b` signed?
+Suppose `a` and `b` has signed and unsigned types respectively. When is `a + b` signed?
Back: When `b`'s type has lower rank and the range of `b` is included in the range of `a`.
Reference: “ISO: Programming Languages - C,” April 12, 2011, [https://port70.net/~nsz/c/c11/n1570.pdf](https://port70.net/~nsz/c/c11/n1570.pdf).
diff --git a/notes/git/objects.md b/notes/git/objects.md
index 54facaf..dd38595 100644
--- a/notes/git/objects.md
+++ b/notes/git/objects.md
@@ -155,14 +155,6 @@ Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Soft
END%%
-%%ANKI
-Basic
-How is e.g. `.git/objects/d6/70460b4b4aece5915caf5c68d12f560a9fe3e4` encoded?
-Back: As a `zlib` data formatted file.
-Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014).
-
-END%%
-
%%ANKI
Basic
What plumbing subcommand is used to inspect git objects?
diff --git a/notes/set/order.md b/notes/set/order.md
index 2e7478b..ab0f6a4 100644
--- a/notes/set/order.md
+++ b/notes/set/order.md
@@ -488,7 +488,7 @@ END%%
%%ANKI
Basic
Consider an equivalence class of $x$ (modulo $R$). What kind of mathematical object is $R$?
-Back: A relation.
+Back: An equivalence relation.
Reference: Herbert B. Enderton, *Elements of Set Theory* (New York: Academic Press, 1977).
END%%
diff --git a/notes/x86-64/instructions/conditions.md b/notes/x86-64/instructions/conditions.md
index 62e0158..f7d7e9e 100644
--- a/notes/x86-64/instructions/conditions.md
+++ b/notes/x86-64/instructions/conditions.md
@@ -10,7 +10,111 @@ tags:
A number of instructions operate with respect to the [[registers#Condition Codes|condition code registers]].
-## CMP and TEST
+> The conventional way to implement conditional operationsis through a conditional transfer of *control*, where the program follows one execution path when a condition holds and another when it does not.
+>
+> An alternate strategy is through a conditional transfer of *data*. This approach computes both outcomes of a conditional operation and then selects one based on whether or not the condition holds.
+
+%%ANKI
+Basic
+What does the conditional transfer of control refer to?
+Back: Following one execution path when a condition holds and another when it does not.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+What does the conditional transfer of data refer to?
+Back: Moving data between destinations based on a condition.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Cloze
+With respect to assembly, we usually discuss either conditional transfer of {1:control} or {1:data}.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+What does "conditional transfer" refer to in the context of control?
+Back: The movement of the PC to a different address depending on conditions.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+What does "conditional transfer" refer to in the context of data?
+Back: The actual moving of data between destinations if a condition is satisfied.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+*Why* might conditional transfers of control be less performant than that of data?
+Back: Branch prediction penalties may be more expensive than computing both branches' instructions.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+When can we not use conditional transfer of data?
+Back: When a branch may yield an error or some other side effect.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+The following pseudocode is a demonstration of the conditional transfer of what?
+```
+v = then-expr;
+ve = else-expr;
+t = test-expr;
+if (!t) v = ve;
+```
+Back: Data.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+The following pseudocode is a demonstration of the conditional transfer of what?
+```
+ if (!test-expr)
+ goto false;
+ v = then-expr;
+ goto done;
+false:
+ v = else-expr;
+done:
+```
+Back: Control.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+*Why* couldn't we use conditional transfer of data with the following expression?
+```c
+xp ? *xp : 0
+```
+Back: Dereferencing `xp` may throw a null pointer dereferencing error.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+Tags: c17
+
+END%%
+
+## Instructions
+
+### CMP and TEST
| Instruction | Operands | Based On | Description |
| ------------ | ---------- | --------------------- | ----------- |
@@ -96,7 +200,7 @@ Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Program
END%%
-## SET
+### SET
The description of the `SET` commands apply to the case of a comparison instruction. That is, the condition codes are set according to computation `t = a - b`, where `t`, `a`, and `b` may be interpreted as signed or unsigned depending on the `SET` instruction invoked.
@@ -109,7 +213,7 @@ The description of the `SET` commands apply to the case of a comparison instruct
| `setl` | `setnge` | `SF ^ OF` | Less (signed `<`) |
| `setle` | `setng` | (SF ^ OF) \| ZF
| Less or equal (signed `<=`) |
| `setg` | `setnle` | `~(SF ^ OF) & ~ZF` | Greater (signed `>`) |
-| `setge` | `setnl` | `~(SF ^ OF)` | Greater or equal (signed `<=`) |
+| `setge` | `setnl` | `~(SF ^ OF)` | Greater or equal (signed `>=`) |
| `setb` | `setnae` | `CF` | Below (unsigned `<`) |
| `setbe` | `setna` | CF \| ZF
| Below or equal (unsigned `<=`) |
| `seta` | `setnbe` | `~CF & ~ZF` | Above (unsigned `>`) |
@@ -602,6 +706,247 @@ Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Program
END%%
+### JMP
+
+Jump instructions are categorized as either **direct** or **indirect**. Direct jump instructions specify a label whereas indirect jump instructions specify a `*` followed by an memory operand.
+
+| Instruction | Synonym | Jump Condition | Description |
+| ----------------- | -------- | ---------------------------- | ------------------------------ |
+| `jmp` *Label* | - | 1 | Direct jump |
+| `jmp` *\*Operand* | - | 1 | Indirect jump |
+| `je` *Label* | `jz` | `ZF` | Equal / zero |
+| `jne` *Label* | `jnz` | `~ZF` | Not equal / not zero |
+| `js` *Label* | - | `SF` | Negative |
+| `jns` *Label* | - | `~SF` | Nonnegative |
+| `jl` *Label* | `jnge` | `SF ^ OF` | Less (signed `<`) |
+| `jle` *Label* | `jng` | (SF ^ OF) \| ZF
| Less or equal (signed `<=`) |
+| `jg` *Label* | `jnle` | `~(SF ^ OF) & ~ZF` | Greater (signed `>`) |
+| `jge` *Label* | `jnl` | `~(SF ^ OF)` | Greater or equal (signed `>=`) |
+| `jb` *Label* | `jnae` | `CF` | Below (unsigned `<`) |
+| `jbe` *Label* | `jna` | CF \| ZF
| Below or equal (unsigned `<=`) |
+| `ja` *Label* | `jnbe` | `~CF & ~ZF` | Above (unsigned `>`) |
+| `jae` *Label* | `jnb` | `~CF` | Above or equal (unsigned `>=`) |
+
+%%ANKI
+Basic
+How is the operand of a direct jump formatted?
+Back: As a label.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+How is the operand of an indirect jump formatted?
+Back: As an `*` followed by a register or memory address.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+Is the following considered a direct or indirect jump?
+```x86
+jmp *(%rax)
+```
+Back: Indirect.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+Is the following considered a direct or indirect jump?
+```x86
+jmp .L1
+```
+Back: Direct.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+Is the following considered a direct or indirect jump?
+```x86
+jmp *%rax
+```
+Back: Indirect.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+Is the following considered a direct or indirect jump?
+```x86
+jg *%rax
+```
+Back: N/A. This is not a valid instruction.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+What is a jump target?
+Back: An address of some destination instruction specified by a jump instruction.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+What restriction is enforced on the operand of nonconditional jump instructions?
+Back: N/A.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+What restriction is enforced on the operand of conditional jump instructions?
+Back: Conditional jumps can only be direct.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+A PC-relative jump encoding encodes the difference between what two addresses?
+Back: The jump target and that of the instruction immediately following the jump.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+What is "PC" in "PC-relative" short for?
+Back: **P**rogram **C**ounter.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+How large is a PC-relative jump offset encoding?
+Back: 1, 2, or 4 bytes.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Cloze
+A {PC-relative} jump encoding contrasts an {absolute} jump encoding.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+How large is an absolute jump address encoding?
+Back: 4 bytes.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+*Why* is PC-relative addressing performed relative to the instruction after a jump?
+Back: It is convention to update the PC as the first step of executing any instruction.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+*Why* is PC-relative encoding more compact than absolute encoding?
+Back: Offsets may be expressable in 1 or 2 bytes instead of 4.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+*Why* is PC-relative encoding more portable than absolute encoding?
+Back: Because object code can shift position in memory without alteration.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+What is the nonconditional direct jump instruction?
+Back: `jmp[bwlq]`
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+What is the nonconditional indirect jump instruction?
+Back: `jmp[bwlq]`
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+Conditional transfer of control usually involves what instructon set?
+Back: JMP
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+### CMOV
+
+Like [[access#MOV|MOV]] instructions, but with the data transfer only happening if the move condition is satisfied.
+
+| Instruction | Synonym | Move Condition | Description |
+| ----------- | ---------- | ---------------------------- | ------------------------------ |
+| `cmove` | `cmovz` | `ZF` | Equal / zero |
+| `cmovene` | `cmovnz` | `~ZF` | Not equal / not zero |
+| `cmovs` | - | `SF` | Negative |
+| `cmovns` | - | `~SF` | Nonnegative |
+| `cmovl` | `cmovnge` | `SF ^ OF` | Less (signed `<`) |
+| `cmovle` | `cmovng` | (SF ^ OF) \| ZF
| Less or equal (signed `<=`) |
+| `cmovg` | `cmovenle` | `~(SF ^ OF) & ~ZF` | Greater (signed `>`) |
+| `cmovge` | `cmovnl` | `~(SF ^ OF)` | Greater or equal (signed `>=`) |
+| `cmovb` | `cmovnae` | `CF` | Below (unsigned `<`) |
+| `cmovbe` | `cmovna` | CF \| ZF
| Below or equal (unsigned `<=`) |
+| `cmova` | `cmovnbe` | `~CF & ~ZF` | Above (unsigned `>`) |
+| `cmovae` | `cmovnb` | `~CF` | Above or equal (Unsigned `>=`) |
+
+%%ANKI
+Cloze
+{1:MOV} is to {2:unconditional} whereas {2:CMOV} is to {1:conditional}.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+Conditional transfer of data usually involves what instructon set?
+Back: CMOV
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Basic
+What is instruction `cmove` an acronym for?
+Back: **C**onditional **mov**e **e**qual.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
+%%ANKI
+Cloze
+Conditional transfer of {1:control} is to {2:JMP} and {2:data} is to {1:CMOV}.
+Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
+
+END%%
+
## Bibliography
* Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.