Я начинаю изучать сборку. В первом jle
, которое у меня есть, я знаю, что это означает переход к .L3, если что-то меньше, но я не понимаю, где он сравнивает два значения, не предполагается, что cmpl
появится перед jle
или это одно и то же?
movl 12(%ebp), %eax
movl 8(%ebp), %ebx
jle .L3
movl %edx, %ecx
sall $4, %ecx
cmpl %ecx, %eax
jge .L3
.p2align 2,,3
.L6:
addl %edx, %ebx
imull %edx, %eax
decl %edx
subl $16, %ecx
testl %edx, %edx
jle .L3
cmpl %ecx, %eax
jl .L6
.L3:
movl %ebx, %eax
popl %ebx
leave
ret