微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > linux 下arm汇编语法

linux 下arm汇编语法

时间:11-20 来源:互联网 点击:
嵌入式系统,http://blog.163.com/liren0@126/blog/static/32897598200821211144696/
7. objcopy命令介绍,http://blog.csdn.net/junhua198310/archive/2007/06/27/1669545.aspx

=================================================================================

(补充)转:http://hi.baidu.com/760159/blog/item/122980def7c9e11948540361.html/cmtid/959835c57b6a74a48226aca4

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下的汇编程序为:

__main
.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

符号定义后加":"号
AREA Word, CODE, READONLY --> .text
AREA Block, DATA, READWRITE --> .data
CODE32 --> .arm
CODE16 --> .thumb
LTORG --> .ltorg

3、操作数及运算符号替换
ldr pc, [pc, #&18] 替换成 ldr pc, [pc, #+0x18]
“&”以“+0x”号替换

========================================================================

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top