My code that I posted works just fine:
10010000000100000000100111010011b (iPanda.asm, 12)
di = 8 (iPanda.asm, 31)
10010001100100011001100111010011b (iPanda.asm, 12)
di = 3 (iPanda.asm, 31)
10000000000000000000000000000001b (iPanda.asm, 12)
di = 30 (iPanda.asm, 31)
10000000000000000000000000000000b (iPanda.asm, 13)
di = 31 (iPanda.asm, 32)
00000000000000000000000000000001b (iPanda.asm, 13)
di = 31 (iPanda.asm, 32)
00000000001000000000000000000001b (iPanda.asm, 13)
di = 20 (iPanda.asm, 32)
10010001100100011001100111010011b (iPanda.asm, 13)
di = 3 (iPanda.asm, 32)
10010001100000011001100111010011b (iPanda.asm, 13)
di = 6 (iPanda.asm, 32)
Shr moves the least significant bit into CF either 1 or 0
How are you using the code and where? Are you adding it right after
notZero:
shr a,1
jc notZero
because that is NOT needed, the code I posted does not need that.