• Source
    1. .data
    2. x:
    3. .long 0
    4. s:
    5. .string "%d\n\0"
    6.  
    7. .text
    8. .global main
    9. main: # int main()
    10. # {
    11. loop: # for (;;) {
    12. pushl $x # scanf("%d", &x);
    13. pushl $s
    14. call scanf
    15. addl $8, %esp
    16.  
    17. movl x, %eax # if (x == 42) break;
    18. subl $42, %eax
    19. jz break
    20.  
    21. pushl x # printf("%d\n", x);
    22. pushl $s
    23. call printf
    24. addl $8, %esp
    25.  
    26. jmp loop # }
    27. break:
    28.  
    29. xor %eax, %eax # return 0;
    30. ret
    31. # }
    32.