diff --git a/lib/popcnt.asm b/lib/popcnt.asm index 52d6fb2..d03694a 100644 --- a/lib/popcnt.asm +++ b/lib/popcnt.asm @@ -5,21 +5,21 @@ popcnt: mov bx, ax and ax, 0x5555 ; 8x 01 and bx, 0xaaaa ; 8x 10 - sar bx, 1 + shr bx, 1 add ax, bx mov bx, ax and ax, 0x3333 ; 4x 0011 and bx, 0xcccc ; 4x 1100 mov cl, 2 - sar bx, cl + shr bx, cl add ax, bx mov bx, ax and ax, 0x0f0f ; 2x 00001111 and bx, 0xf0f0 ; 2x 11110000 mov cl, 4 - sar bx, cl + shr bx, cl add ax, bx add al, ah