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.