diff --git a/lib/log2.asm b/lib/log2.asm index cdc2bb8..b61dbd9 100644 --- a/lib/log2.asm +++ b/lib/log2.asm @@ -3,12 +3,13 @@ ; OUT AX dual logarithm log2: push cx - mov cx, 16 + mov cx, 15 .loop: - sar ax, 1 - loopnz .loop - xchg ax, cx + rcl ax, 1 + jc .ret + loop .loop +.ret: + cmc + mov ax, cx pop cx - neg ax - add ax, 15 ret