Chinaunix首页 | 论坛 | 博客
  • 博客访问: 163300
  • 博文数量: 60
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 458
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-04 10:01
文章分类

全部博文(60)

文章存档

2016年(3)

2014年(57)

我的朋友

分类: LINUX

2014-06-23 09:45:26

将ARM SDT下的汇编代码移植到GCC for ARM编译器时,经常要做如下修改:  
1、[注释]  
;  =>  /* */ 或者 //  
2、[伪操作符替换]  
JUMPADDR  =>  JUMPADDR:    -- 符号定义加:号  
INCLUDE  =>  .INCLUDE  
EQU  =>  .equ  
TCLK2  EQU  PB25  =>  .equ  TCLK2, PB25  
TCLK2  EQU  PB25  =>  .equ  TCLK2, PB25  
DCD  =>  .long  .word  
IF :DEF:  =>   #if defined(MACRO_SAMPLE)  
ELSE  =>  #else  
ENDIF  =>  #endif  
:OR:  =>  |  
:SHL:  =>  <<  
Entry  =>  Entry:  
END  =>  .end  
AREA Word, CODE, READONLY  =>  .text  
AREA Block, DATA, READWRITE  =>  .data  
CODE32  =>  .arm
CODE16  =>  .thumb  
LTORG  =>  .ltorg  
%  =>  .fill  
MACRO  =>  .macro  
MEND  =>  .endm  
EXPORT  =>  .global  
IMPORT  =>  .extern  
GBLL GBLA  =>  .global  
SETL SETA  =>  #define 或者.equ  
EQU  =>  #define  
GET option.a  =>  #include "option.a"  
??  =>  .align  
3、[操作数及运算符号替换]  
ldr pc, [pc, #&18]  替换成   ldr pc, [pc, #+0x18]    
“&”  =>  “+0x”  
ldr pc, [pc, #-&20]  替换成   ldr pc, [pc, #-0x20]  
“-&”  =>  “-0x” 


阅读(856) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~