计算整数(MASM)的二进制表示中的1的数量*跟进

时间:2014-03-08 00:08:59

标签: assembly masm

嘿所以我之前提出过这个问题,但是我遇到了这个程序的一些新问题。 我对汇编语言很陌生,我希望能得到一些帮助。我试图用整数的二进制表示来计算1的数量。我相信我应该将寄存器移到我输入数字32次的位置,每次遇到1时都会递增。我应该跳转,如果它不是1则避免增加ebx。我还是初学者,所以我还在学习MASM语法,但到目前为止我还是这样:

__declspec(naked) unsigned int count(unsigned int v) {
    __asm{
    PUSH EAX
    PUSH EBX
    PUSH ECX


    xor ebx, ebx
    mov ecx, 32

shifting:
    shl eax, 1
    jnc skip_inc
    inc ebx
skip_inc:
    loop shifting


    POP EBX
    POP ECX
    POP EAX

        ret
    }
}

0 个答案:

没有答案