From 6f7fc051715ec2bef1d77cc5099c4f4b2a5e3c48 Mon Sep 17 00:00:00 2001 From: Ain <41307858+nero@users.noreply.github.com> Date: Sat, 19 Oct 2019 12:51:11 +0000 Subject: [PATCH] log2: implement using left rotate through carry --- lib/log2.asm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) 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