美文网首页
IOS的一段汇编

IOS的一段汇编

作者: 无边小猪 | 来源:发表于2020-06-01 17:38 被阅读0次

    生成汇编
    clang -S -fobjc-arc test.m -o test.s

    源代码

    #import "QYInteractMath.h"
    @implementation QYInteractMath
    
        // 字符串加
        
    -  (int)addV1:(int)v1 v2:(int)v2 {
        int c =v1+v2;
        return c;
    }
    
        
    + (int)divV1:(int)v3 v2:(int)v4{
        int w = v3-v4;
        return w;
        
    }
    
    - (void)math
    {
        int a1 =5;
        int a2=6;
        
        int b1 =15;
        int b2=3;
        int a10 = [self addV1:a1 v2:a2];
        int a11 = [QYInteractMath divV1:b1 v2:b2];
    }
    
    @end
    

    汇编代码

        .section    __TEXT,__text,regular,pure_instructions
        .build_version macos, 10, 15    sdk_version 10, 15, 4
        .p2align    4, 0x90         ## -- Begin function -[QYInteractMath addV1:v2:]
    "-[QYInteractMath addV1:v2:]":          ## @"\01-[QYInteractMath addV1:v2:]"
        .cfi_startproc
    ## %bb.0:
        pushq   %rbp
        .cfi_def_cfa_offset 16
        .cfi_offset %rbp, -16
        movq    %rsp, %rbp
        .cfi_def_cfa_register %rbp
        movq    %rdi, -8(%rbp)
        movq    %rsi, -16(%rbp)
        movl    %edx, -20(%rbp)
        movl    %ecx, -24(%rbp)
        movl    -20(%rbp), %eax
        addl    -24(%rbp), %eax
        movl    %eax, -28(%rbp)
        movl    -28(%rbp), %eax
        popq    %rbp
        retq
        .cfi_endproc
                                            ## -- End function
        .p2align    4, 0x90         ## -- Begin function +[QYInteractMath divV1:v2:]
    "+[QYInteractMath divV1:v2:]":          ## @"\01+[QYInteractMath divV1:v2:]"
        .cfi_startproc
    ## %bb.0:
        pushq   %rbp
        .cfi_def_cfa_offset 16
        .cfi_offset %rbp, -16
        movq    %rsp, %rbp
        .cfi_def_cfa_register %rbp
        movq    %rdi, -8(%rbp)
        movq    %rsi, -16(%rbp)
        movl    %edx, -20(%rbp)
        movl    %ecx, -24(%rbp)
        movl    -20(%rbp), %eax
        subl    -24(%rbp), %eax
        movl    %eax, -28(%rbp)
        movl    -28(%rbp), %eax
        popq    %rbp
        retq
        .cfi_endproc
                                            ## -- End function
        .p2align    4, 0x90         ## -- Begin function -[QYInteractMath math]
    "-[QYInteractMath math]":               ## @"\01-[QYInteractMath math]"
        .cfi_startproc
    ## %bb.0:
        pushq   %rbp
        .cfi_def_cfa_offset 16
        .cfi_offset %rbp, -16
        movq    %rsp, %rbp
        .cfi_def_cfa_register %rbp
        subq    $48, %rsp
        movq    %rdi, -8(%rbp)
        movq    %rsi, -16(%rbp)
        movl    $5, -20(%rbp)
        movl    $6, -24(%rbp)
        movl    $15, -28(%rbp)
        movl    $3, -32(%rbp)
        movq    -8(%rbp), %rax
        movl    -20(%rbp), %edx
        movl    -24(%rbp), %ecx
        movq    _OBJC_SELECTOR_REFERENCES_(%rip), %rsi
        movq    %rax, %rdi
        callq   *_objc_msgSend@GOTPCREL(%rip)
        movl    %eax, -36(%rbp)
        movq    _OBJC_CLASSLIST_REFERENCES_$_(%rip), %rsi
        movl    -28(%rbp), %edx
        movl    -32(%rbp), %ecx
        movq    _OBJC_SELECTOR_REFERENCES_.2(%rip), %rdi
        movq    %rdi, -48(%rbp)         ## 8-byte Spill
        movq    %rsi, %rdi
        movq    -48(%rbp), %rsi         ## 8-byte Reload
        callq   *_objc_msgSend@GOTPCREL(%rip)
        movl    %eax, -40(%rbp)
        addq    $48, %rsp
        popq    %rbp
        retq
        .cfi_endproc
                                            ## -- End function
        .section    __TEXT,__objc_methname,cstring_literals
    L_OBJC_METH_VAR_NAME_:                  ## @OBJC_METH_VAR_NAME_
        .asciz  "addV1:v2:"
    
        .section    __DATA,__objc_selrefs,literal_pointers,no_dead_strip
        .p2align    3               ## @OBJC_SELECTOR_REFERENCES_
    _OBJC_SELECTOR_REFERENCES_:
        .quad   L_OBJC_METH_VAR_NAME_
    
        .section    __DATA,__objc_data
        .globl  _OBJC_CLASS_$_QYInteractMath ## @"OBJC_CLASS_$_QYInteractMath"
        .p2align    3
    _OBJC_CLASS_$_QYInteractMath:
        .quad   _OBJC_METACLASS_$_QYInteractMath
        .quad   _OBJC_CLASS_$_NSObject
        .quad   __objc_empty_cache
        .quad   0
        .quad   __OBJC_CLASS_RO_$_QYInteractMath
    
        .section    __DATA,__objc_classrefs,regular,no_dead_strip
        .p2align    3               ## @"OBJC_CLASSLIST_REFERENCES_$_"
    _OBJC_CLASSLIST_REFERENCES_$_:
        .quad   _OBJC_CLASS_$_QYInteractMath
    
        .section    __TEXT,__objc_methname,cstring_literals
    L_OBJC_METH_VAR_NAME_.1:                ## @OBJC_METH_VAR_NAME_.1
        .asciz  "divV1:v2:"
    
        .section    __DATA,__objc_selrefs,literal_pointers,no_dead_strip
        .p2align    3               ## @OBJC_SELECTOR_REFERENCES_.2
    _OBJC_SELECTOR_REFERENCES_.2:
        .quad   L_OBJC_METH_VAR_NAME_.1
    
        .section    __TEXT,__objc_classname,cstring_literals
    L_OBJC_CLASS_NAME_:                     ## @OBJC_CLASS_NAME_
        .asciz  "QYInteractMath"
    
        .section    __TEXT,__objc_methtype,cstring_literals
    L_OBJC_METH_VAR_TYPE_:                  ## @OBJC_METH_VAR_TYPE_
        .asciz  "i24@0:8i16i20"
    
        .section    __DATA,__objc_const
        .p2align    3               ## @"_OBJC_$_CLASS_METHODS_QYInteractMath"
    __OBJC_$_CLASS_METHODS_QYInteractMath:
        .long   24                      ## 0x18
        .long   1                       ## 0x1
        .quad   L_OBJC_METH_VAR_NAME_.1
        .quad   L_OBJC_METH_VAR_TYPE_
        .quad   "+[QYInteractMath divV1:v2:]"
    
        .p2align    3               ## @"_OBJC_METACLASS_RO_$_QYInteractMath"
    __OBJC_METACLASS_RO_$_QYInteractMath:
        .long   129                     ## 0x81
        .long   40                      ## 0x28
        .long   40                      ## 0x28
        .space  4
        .quad   0
        .quad   L_OBJC_CLASS_NAME_
        .quad   __OBJC_$_CLASS_METHODS_QYInteractMath
        .quad   0
        .quad   0
        .quad   0
        .quad   0
    
        .section    __DATA,__objc_data
        .globl  _OBJC_METACLASS_$_QYInteractMath ## @"OBJC_METACLASS_$_QYInteractMath"
        .p2align    3
    _OBJC_METACLASS_$_QYInteractMath:
        .quad   _OBJC_METACLASS_$_NSObject
        .quad   _OBJC_METACLASS_$_NSObject
        .quad   __objc_empty_cache
        .quad   0
        .quad   __OBJC_METACLASS_RO_$_QYInteractMath
    
        .section    __TEXT,__objc_methname,cstring_literals
    L_OBJC_METH_VAR_NAME_.3:                ## @OBJC_METH_VAR_NAME_.3
        .asciz  "math"
    
        .section    __TEXT,__objc_methtype,cstring_literals
    L_OBJC_METH_VAR_TYPE_.4:                ## @OBJC_METH_VAR_TYPE_.4
        .asciz  "v16@0:8"
    
        .section    __DATA,__objc_const
        .p2align    3               ## @"_OBJC_$_INSTANCE_METHODS_QYInteractMath"
    __OBJC_$_INSTANCE_METHODS_QYInteractMath:
        .long   24                      ## 0x18
        .long   2                       ## 0x2
        .quad   L_OBJC_METH_VAR_NAME_
        .quad   L_OBJC_METH_VAR_TYPE_
        .quad   "-[QYInteractMath addV1:v2:]"
        .quad   L_OBJC_METH_VAR_NAME_.3
        .quad   L_OBJC_METH_VAR_TYPE_.4
        .quad   "-[QYInteractMath math]"
    
        .p2align    3               ## @"_OBJC_CLASS_RO_$_QYInteractMath"
    __OBJC_CLASS_RO_$_QYInteractMath:
        .long   128                     ## 0x80
        .long   8                       ## 0x8
        .long   8                       ## 0x8
        .space  4
        .quad   0
        .quad   L_OBJC_CLASS_NAME_
        .quad   __OBJC_$_INSTANCE_METHODS_QYInteractMath
        .quad   0
        .quad   0
        .quad   0
        .quad   0
    
        .section    __DATA,__objc_classlist,regular,no_dead_strip
        .p2align    3               ## @"OBJC_LABEL_CLASS_$"
    _OBJC_LABEL_CLASS_$:
        .quad   _OBJC_CLASS_$_QYInteractMath
    
        .section    __DATA,__objc_imageinfo,regular,no_dead_strip
    L_OBJC_IMAGE_INFO:
        .long   0
        .long   64
    
    
    .subsections_via_symbols
    

    相关文章

      网友评论

          本文标题:IOS的一段汇编

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