0
有人可以向我解釋組件的下面的代碼片斷:IA-32組件divison
mydiv:
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %edx ; get x
movl %edx, %eax
sarl $31, %edx ; divide by y
idivl 12(%ebp) ; return %eax
popl %ebp
ret
這是等同於以下的C函數:
int mydiv(int x, int y)
{
return x/y;
}
其時遇到的部分麻煩的理解是sarl
說明:你爲什麼需要轉移edx
?
你能舉個例子嗎? –