嘿所以我之前提出过这个问题,但是我遇到了这个程序的一些新问题。 我对汇编语言很陌生,我希望能得到一些帮助。我试图用整数的二进制表示来计算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
}
}