Onelong

分享知识,与你一起进步......
RSS icon Home icon
  • arm 硬件浮点一些资料

    post by onelong / 2012-12-17 3:27 Monday [C++]

    今天在看汇编的时候在网上找资料看到一些文章,觉得还不错,就收下来了!

    http://blog.chinaunix.net/uid-22028566-id-3017903.html

    http://blog.chinaunix.net/uid-22545494-id-316735.html

    或者有些用处吧!至少对我像我这样的初学者,起码可以理解软件浮点和硬件浮点的区别,和软件浮点是怎样实现的。

    今天疑惑的问题,看main函数

     

    .arch armv4t

    .fpu softvfp

    .eabi_attribute 20, 1

    .eabi_attribute 21, 1

    .eabi_attribute 23, 3

    .eabi_attribute 24, 1

    .eabi_attribute 25, 1

    .eabi_attribute 26, 2

    .eabi_attribute 30, 6

    .eabi_attribute 18, 4

    .file "ht.cpp"

    .text

    .align 2

    .global main

    .type main, %function

    main:

    .fnstart

    .LFB0:

    @ Function supports interworking.

    @ args = 0, pretend = 0, frame = 8

    @ frame_needed = 1, uses_anonymous_args = 0

    @ link register save eliminated.

    str fp, [sp, #-4]!

    .LCFI0:

    add fp, sp, #0//

    .LCFI1:

    sub sp, sp, #12

    .LCFI2:

    mov r3, #50

    str r3, [fp, #-12]

    sub r3, fp, #12

    str r3, [fp, #-8]//为什么是[fp, #-8]而不是[fp, #-4]

    mov r3, #0

    mov r0, r3

    add sp, fp, #0

    ldmfd sp!, {fp}

    bx lr

    .LFE0:

    .cantunwind

    .fnend

    .size main, .-main

    .ident "GCC: (ctng-1.6.1) 4.4.3"

    .section .note.GNU-stack,"",%progbits

    在把c/c++编译成汇编时,发现都会多分配4b的空间,开始想也想不通,后来想了想,好像函数也是一个指针,上面的[fp, #-4]是不是函数地址呢?
    问了几位大师,大师都很忙,都没有给我回答,只好无奈的自己找到答案去了!有了解的,感谢告知

    引用地址:
     

    我要评论