mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-09-16 10:23:34 +12:00
25 lines
421 B
NASM
25 lines
421 B
NASM
; 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
|