汇编

作者: ShawnDu | 来源:发表于2017-07-21 21:09 被阅读95次

    c 和汇编对比

    #include <stdio.h>
    int main(void) {
      int x, y, z;
    
      while(1) {
        x = 0;
        y = 0;
        do {
           printf("%d\n", x);
           z = x + y;
           x = y;
           y = z;
    }while (x < 255);
    }
    }
    
    gcc -o fib fib.c
    octool -tv fib
    

    机器代码如下:

    fib:
    (__TEXT,__text) section
    _main:
    0000000100000f30    pushq   %rbp
    0000000100000f31    movq    %rsp, %rbp
    0000000100000f34    subq    $0x20, %rsp
    0000000100000f38    movl    $0x0, -0x4(%rbp)
    0000000100000f3f    movl    $0x0, -0x8(%rbp)
    0000000100000f46    movl    $0x0, -0xc(%rbp)
    0000000100000f4d    leaq    0x56(%rip), %rdi
    0000000100000f54    movl    -0x8(%rbp), %esi
    0000000100000f57    movb    $0x0, %al
    0000000100000f59    callq   0x100000f88
    0000000100000f5e    movl    -0x8(%rbp), %esi
    0000000100000f61    addl    -0xc(%rbp), %esi
    0000000100000f64    movl    %esi, -0x10(%rbp)
    0000000100000f67    movl    -0xc(%rbp), %esi
    0000000100000f6a    movl    %esi, -0x8(%rbp)
    0000000100000f6d    movl    -0x10(%rbp), %esi
    0000000100000f70    movl    %esi, -0xc(%rbp)
    0000000100000f73    movl    %eax, -0x14(%rbp)
    0000000100000f76    cmpl    $0xff, -0x8(%rbp)
    0000000100000f7d    jl  0x100000f4d
    0000000100000f83    jmp 0x100000f3f
    

    相关文章

      网友评论

          本文标题:汇编

          本文链接:https://www.haomeiwen.com/subject/zbfwzttx.html