1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| blockExecute:
pushl %ebp
movl %esp, %ebp
pushl %edi
pushl %esi
subl $32, %esp
movl $.L2, %edx
movl $.L3, %eax
movl %edx, %ecx
subl %eax, %ecx
movl %ecx, %eax
movl %eax, -24(%ebp)
movl -24(%ebp), %eax
addl $1, %eax
movl %eax, (%esp)
call malloc
movl %eax, -20(%ebp)
movl -20(%ebp), %eax
movl -24(%ebp), %edx
movl %eax, %edi
movl $.L3, %esi
cld
movl %edx, %ecx
rep
movsb
movl %eax, -16(%ebp)
movl $2, -12(%ebp)
movl -16(%ebp), %eax
jmp *%eax
.L3:
movl -12(%ebp), %eax
movl %eax, %edx
addl %edx, %edx
leal (%edx,%eax), %eax
movl %eax, -12(%ebp)
.L2:
movl -12(%ebp), %eax
addl $32, %esp
popl %esi
popl %edi
popl %ebp
ret
.size blockExecute, .-blockExecute
.section .rodata |
Partager