.globl asmslowsqrt asmslowsqrt: movl 4(%esp), %edx ; // read the parameter into d movl $0, %eax ; // a = 0 Loop: ; // do { movl %eax, %ecx ; // c = a; addl $1, %eax ; // a += 1; imul %eax, %ecx ; // c *= a; cmpl %ecx, %edx ; // } while (d - c ja Loop ; // > 0); subl $1, %eax ; // a -= 1; ret ; // return a;