想要给array数组赋值,赋值是十进制数100转换为二进制中1所在的位置,程序还是有问题,可以帮忙看一下吗?
想要给array数组赋值,赋值是十进制数100转换为二进制中1所在的位置,比如100是1100100
然后array数组中array[2]=2,array[5]=5,array[6]=6,其余都为0,可是我测试过后,只有array[2]=2,其余都为0,这是为什么呢?
新手给分比较少,见谅~
;给array数组赋值,确定乘数中1的位置
proarray proc
mov ebx,valY
xor esi,esi
mov esi,offset array
mov ecx,32
rcl ebx,1;调整
L2:
rcr ebx,1
mov eax,temp
mov edx,ebx
test edx,1b
jnz next
inc temp
add esi,4
loop L2
next:
mov [esi],eax
ret
proarray endp
[解决办法]
把这个数字除以2 取余数 然后把这个数字左移 再除以2取余数 依次循环
只要思路正确就容易些