>>>для генерации asm - добавить ключ -S при компиляции >>> >... >>Вот кусок кода: >> >> addl $32, %esp >> subl $4, %esp >> pushl $0 >> pushl $.LC25 >> - это строка "%.2f" >> pushl stream >> call fprintf >> addl $16, %esp >> subl $12, %esp >> movl -12(%ebp), %eax > >бинго! >развлечения для и ради, можете попробовать прогнать такой код: >#include <stdio.h> > >int main () >{ > printf ("%f\n", 0, 0x3fe70a3d); > return 0; >} .file "test.c" .section .rodata .LC0: .string "%f\n" .text .globl main .type main,@function main: pushl %ebp movl %esp, %ebp subl $8, %esp andl $-16, %esp movl $0, %eax subl %eax, %esp subl $4, %esp pushl $1072106045 pushl $0 pushl $.LC0 call printf addl $16, %esp movl $0, %eax leave ret .Lfe1: .size main,.Lfe1-main .ident "GCC: (GNU) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)"
А что бинго? Что нашли?
|