From b4c308cfc65a96699221cdce2cdb4ef2a0391f1c Mon Sep 17 00:00:00 2001 From: Rangi Date: Wed, 24 Mar 2021 18:33:31 -0400 Subject: Variants --- Optimizing-assembly-code.md | 48 ++++++++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 16 deletions(-) (limited to 'Optimizing-assembly-code.md') diff --git a/Optimizing-assembly-code.md b/Optimizing-assembly-code.md index 1f1a46b..7aed42f 100644 --- a/Optimizing-assembly-code.md +++ b/Optimizing-assembly-code.md @@ -741,6 +741,22 @@ Don't do: ld b, a ``` +And don't do: + +```asm + ; 4 bytes, 4 cycles + ld a, 0 + adc b + ld b, a +``` + +```asm + ; 4 bytes, 4 cycles + ld a, 0 + sbc b + ld b, a +``` + But do: ```asm @@ -1089,21 +1105,21 @@ Don't do: ```asm ; 8 bytes, 8 cycles - ld a, l - adc 0 + ld a, l ; nor ld a, 0 + adc 0 ; nor adc l ld l, a - ld a, h - adc 0 + ld a, h ; nor ld a, 0 + adc 0 ; nor adc h ld h, a ``` ```asm ; 8 bytes, 8 cycles - ld a, l - sbc 0 + ld a, l ; nor ld a, 0 + sbc 0 ; nor sbc l ld l, a - ld a, h - sbc 0 + ld a, h ; nor ld a, 0 + sbc 0 ; nor sbc h ld h, a ``` @@ -1111,8 +1127,8 @@ And don't do: ```asm ; 7 bytes, 7 cycles - ld a, l - adc 0 + ld a, l ; nor ld a, 0 + adc 0 ; nor adc l ld l, a adc h sub l @@ -1121,8 +1137,8 @@ And don't do: ```asm ; 7 bytes, 7 cycles - ld a, l - sbc 0 + ld a, l ; nor ld a, 0 + sbc 0 ; nor sbc l ld l, a sbc h add l @@ -1135,8 +1151,8 @@ And don't do: ```asm ; 7 bytes, 7 or 8 cycles - ld a, l - adc 0 + ld a, l ; nor ld a, 0 + adc 0 ; nor adc l ld l, a jr nc, .no_carry inc h @@ -1145,8 +1161,8 @@ And don't do: ```asm ; 7 bytes, 7 or 8 cycles - ld a, l - sbc 0 + ld a, l ; nor ld a, 0 + sbc 0 ; nor sbc l ld l, a jr nc, .no_carry dec h -- cgit v1.2.3