summaryrefslogtreecommitdiff
path: root/Optimizing-assembly-code.md
diff options
context:
space:
mode:
authorRangi <remy.oukaour+rangi42@gmail.com>2021-03-16 21:23:54 -0400
committerRangi <remy.oukaour+rangi42@gmail.com>2021-03-16 21:23:54 -0400
commit84394965c044082c8708767e358ab55dda4b1916 (patch)
tree031d4201700ac7046cf64d2e66041caf760c668a /Optimizing-assembly-code.md
parent7a7372b6603295e89196086ddbef993614434e01 (diff)
ld [hl], FOO / inc|dec hl -> ld a, FOO / ld [hli|hld], a
Diffstat (limited to 'Optimizing-assembly-code.md')
-rw-r--r--Optimizing-assembly-code.md28
1 files changed, 28 insertions, 0 deletions
diff --git a/Optimizing-assembly-code.md b/Optimizing-assembly-code.md
index 51c512d..893ade2 100644
--- a/Optimizing-assembly-code.md
+++ b/Optimizing-assembly-code.md
@@ -1163,6 +1163,34 @@ But do:
ld [hld], a ; 1 bytes, 2 cycles
```
+And if you can use `a`, then don't do:
+
+```asm
+ ; 3 bytes, 5 cycles
+ ld [hl], FOO
+ inc hl
+```
+
+```asm
+ ; 3 bytes, 5 cycles
+ ld [hl], FOO
+ dec hl
+```
+
+But do:
+
+```asm
+ ; 3 bytes, 4 cycles
+ ld a, FOO
+ ld [hli], a
+```
+
+```asm
+ ; 3 bytes, 4 cycles
+ ld a, FOO
+ ld [hld], a
+```
+
## Branching (control flow)