mirror of
https://github.com/pret/pokered.git
synced 2024-10-22 22:55:31 +00: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
|