逆向-beginners之取模

#include

void main()
{
    printf("3 % 100 = %d\n", 3 % 100);    // 3
    printf("10 % 100 = %d\n", 10 % 100);    // 10
    printf("200 % 100 = %d\n", 200 % 100);    // 0
}

#if 0
/*
 * intel
 */
0000000000001149

:
    1149:    f3 0f 1e fa              endbr64
    114d:    55                       push   %rbp
    114e:    48 89 e5                 mov    %rsp,%rbp
    1151:    be 03 00 00 00           mov    $0x3,%esi            // esi=3
    1156:    48 8d 3d a7 0e 00 00     lea    0xea7(%rip),%rdi        # 2004 <_IO_stdin_used+0x4>
    115d:    b8 00 00 00 00           mov    $0x0,%eax
    1162:    e8 e9 fe ff ff           callq  1050     // printf(rdi, 3)
    1167:    be 0a 00 00 00           mov    $0xa,%esi
    116c:    48 8d 3d 9f 0e 00 00     lea    0xe9f(%rip),%rdi        # 2012 <_IO_stdin_used+0x12>
    1173:    b8 00 00 00 00           mov    $0x0,%eax
    1178:    e8 d3 fe ff ff           callq  1050     // printf(rdi, 10)
    117d:    be 00 00 00 00           mov    $0x0,%esi
    1182:    48 8d 3d 98 0e 00 00     lea    0xe98(%rip),%rdi        # 2021 <_IO_stdin_used+0x21>
    1189:    b8 00 00 00 00           mov    $0x0,%eax
    118e:    e8 bd fe ff ff           callq  1050     // printf(rdi, 0)
    1193:    90                       nop
    1194:    5d                       pop    %rbp
    1195:    c3                       retq   
    1196:    66 2e 0f 1f 84 00 00     nopw   %cs:0x0(%rax,%rax,1)
    119d:    00 00 00

/*
 * arm
 */
000000000040055c

:
  40055c:    a9bf7bfd     stp    x29, x30, [sp, #-16]!
  400560:    910003fd     mov    x29, sp
  400564:    90000000     adrp    x0, 400000 <_init-0x3e8>
  400568:    91194000     add    x0, x0, #0x650
  40056c:    52800061     mov    w1, #0x3                       // #3
  400570:    97ffffb8     bl    400450 // printf(rdi, 3)
  400574:    90000000     adrp    x0, 400000 <_init-0x3e8>
  400578:    91198000     add    x0, x0, #0x660
  40057c:    52800141     mov    w1, #0xa                       // #10
  400580:    97ffffb4     bl    400450 // printf(rdi, 10)
  400584:    90000000     adrp    x0, 400000 <_init-0x3e8>
  400588:    9119c000     add    x0, x0, #0x670
  40058c:    52800001     mov    w1, #0x0                       // #0
  400590:    97ffffb0     bl    400450 // printf(rdi, 0)
  400594:    d503201f     nop
  400598:    a8c17bfd     ldp    x29, x30, [sp], #16
  40059c:    d65f03c0     ret


#endif

你可能感兴趣的:(Assembly,汇编)