Hi - someone supplied the following code in a C++ program to me that g++ compiled. However, I want to convert it to use it in a regular C program that gcc can compile. Needless to say, the construct does not work for GNU C. I've tried placing each line of the assembly in asm("...."); and that also fails to get gcc to compile it. What would the equivalent GNU C function for the below be? static unsigned int bitScanAndReset(unsigned long long & bb) { __asm { xor edx, edx mov ebx, [bb] xor eax, eax inc edx bsf ecx, [ebx] jnz found bsf ecx, [ebx+4] lea ebx, [ebx+4] xor eax, 32 found: shl edx, cl xor eax, ecx xor [ebx], edx } } Thanks, Stuart