ref: ce4c2d3d1247b7d90c7cf6d5b64ef486a88b70c7
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