LLVM ARM汇编程序指令的文档

时间:2016-04-29 07:26:51

标签: assembly arm llvm llvm-clang cortex-m3

目前我正在查看由LLVM生成的ARM Cortex-M3的汇编程序代码。 LLVM生成许多汇编程序指令。正如您在下面的示例中看到的那样:

    .text
    .syntax unified
    .eabi_attribute 67, "2.09"  @ Tag_conformance
    .cpu    cortex-m3
    .eabi_attribute 6, 10   @ Tag_CPU_arch
    .eabi_attribute 7, 77   @ Tag_CPU_arch_profile
    .eabi_attribute 8, 0    @ Tag_ARM_ISA_use
    .eabi_attribute 9, 2    @ Tag_THUMB_ISA_use
    .eabi_attribute 17, 1   @ Tag_ABI_PCS_GOT_use
    .eabi_attribute 20, 1   @ Tag_ABI_FP_denormal
    .eabi_attribute 21, 1   @ Tag_ABI_FP_exceptions
    .eabi_attribute 23, 3   @ Tag_ABI_FP_number_model
    .eabi_attribute 34, 0   @ Tag_CPU_unaligned_access
    .eabi_attribute 24, 1   @ Tag_ABI_align_needed
    .eabi_attribute 25, 1   @ Tag_ABI_align_preserved
    .eabi_attribute 38, 1   @ Tag_ABI_FP_16bit_format
    .eabi_attribute 14, 0   @ Tag_ABI_PCS_R9_use
    .file   "simple.bc"
    .globl  main
    .align  2
    .type   main,%function
    .code   16                      @ @main
    .thumb_func
main:
    .fnstart
.Leh_func_begin0:
@ BB#0:
    .pad    #16
    sub sp, #16
    movs    r0, #0
    str r0, [sp, #12]
    movs    r1, #42
    str r1, [sp, #8]
    movs    r1, #23
    str r1, [sp, #4]
    ldr r1, [sp, #8]
    subs    r1, #23
    str r1, [sp]
    add sp, #16
    bx  lr
.Ltmp0:
    .size   main, .Ltmp0-main
.Leh_func_end0:
    .fnend


    .ident  "clang version 3.6.2 (tags/RELEASE_362/final)"
    .section    ".note.GNU-stack","",%progbits

我在这里找到了ARM特定的汇编程序指令:https://sourceware.org/binutils/docs/as/ARM-Directives.html

然而,如果这些指令必须以某种顺序出现,我找不到丢失的那些和解释。有没有关于所有汇编指令的完整文档和订单?

0 个答案:

没有答案