ARM汇编语言(1)

来源:互联网 发布:淘宝网开网店要钱吗 编辑:程序博客网 时间:2024/05/17 07:13
#include <stdio.h>
int main(int argc, char** argv)
{
int param1 = 100;
int param2 = 200;
int sum = 0;
sum = param1 + param2;
printf("sum is: %d\n", sum);
return 0;
}

armcc -S -o helloworld.S helloworld.c

; generated by ARM C Compiler, ADS1.2 [Build 805]

; commandline [-O2 -S "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
        CODE32

        AREA ||.text||, CODE, READONLY

main PROC
        STMFD    sp!,{r3,lr}
        MOV      r1,#0x12c
        ADR      r0,|L1.24|
        BL       _printf
        MOV      r0,#0
        LDMFD    sp!,{r3,pc}
|L1.24|
        DCB      "sum "
        DCB      "is: "
        DCB      "%d\n\0"
        ENDP



        EXPORT main

        IMPORT _main_arg
        IMPORT __main
        IMPORT _printf
        IMPORT ||Lib$$Request$$armlib||, WEAK

        KEEP ||BuildAttributes$$ARM_ISAv4$M$PE$A:L22$X:L11$S22$~IW$USESV6$~STKCKD$USESV7$~SHL$OSPACE$PRES8||
||BuildAttributes$$ARM_ISAv4$M$PE$A:L22$X:L11$S22$~IW$USESV6$~STKCKD$USESV7$~SHL$OSPACE$PRES8|| EQU 0

        ASSERT {ENDIAN} = "little"
        ASSERT {SWST} = {FALSE}
        ASSERT {NOSWST} = {TRUE}
        ASSERT {INTER} = {FALSE}
        ASSERT {ROPI} = {FALSE}
        ASSERT {RWPI} = {FALSE}
        ASSERT {NOT_SHL} = {TRUE}
        ASSERT {FULL_IEEE} = {FALSE}
        ASSERT {SHL1} = {FALSE}
        ASSERT {SHL2} = {FALSE}
        END
问题:
1、||.text||是什么意思?
2、main PROC?
3、|L1.24|?
4、