天天看点

ARM的ADS汇编器和GCC汇编器

一:ads下的一段汇编程序:

__main 

EXPORT BootReset 

BootReset 

               B resetvec_reqset 

               IMPORT  BootEntry 

               IMPORT  |Image$$RO$$Limit|

         AREA  BOOTROM, CODE, READONLY 

              LDR  r0, =|Image$$RO$$Limit| 

              BEQ  %1 

              ldr  pc, [pc,#-&F20]

转换到gcc下的汇编程序为:

.global BootReset 

BootReset: 

            B resetvec_reqset 

           .extern  BootEntry 

           .extern  Image_RO_Limit 

#  AREA  BOOTROM, CODE, READONLY 

           LDR  r0, =Image_RO_Limit 

           BEQ  FUNC1 

           ldr  pc, [pc,#-0xF20]

二:将ARM SDT下的汇编码移植到GCC for ARM编译器时,经常要做如下修改:

1、注释行以“@”或""代替“;”

2、伪操作符替换:

INCLUDE 替换成 .INCLUDE

TCLK2 EQU PB25 替换成 .equ TCLK2, PB25

EXPORT 替换成 .global

IMPORT 替换成 .extern

DCD 替换成 .long

IF :DEF: 替换成 .IFDEF

ELSE 替换成 .ELSE

ENDIF 替换成 .ENDIF

:OR: 替换成 |

:SHL: 替换成 <<

END 替换成 .end

继续阅读