ref: 9e8caa1a10e238f2a7aaae0cbd697fdd7a21ae9d
dir: /home/count_set_bits.asm/
; function to count how many bits are set in a string of bytes ; INPUT: ; hl = address of string of bytes ; b = length of string of bytes ; OUTPUT: ; [wNumSetBits] = number of set bits CountSetBits:: ld c, 0 .loop ld a, [hli] ld e, a ld d, 8 .innerLoop ; count how many bits are set in the current byte srl e ld a, 0 adc c ld c, a dec d jr nz, .innerLoop dec b jr nz, .loop ld a, c ld [wNumSetBits], a ret