Chinaunix首页 | 论坛 | 博客
  • 博客访问: 487901
  • 博文数量: 52
  • 博客积分: 5017
  • 博客等级: 大校
  • 技术积分: 707
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-20 11:34
文章分类
文章存档

2011年(1)

2008年(51)

我的朋友

分类: LINUX

2008-06-29 12:49:24

ARM汇编和Gnu汇编的转换
 
将ARM ADS下的汇编码移植到GCC for ARM编译器时,有如下规则:
1, 注释行以"@"或"/* ... */"代替";"
 
2, GET或INCLUDE => .INCLUDE
如:get option.a =>     .include "option.a"
 
3, EQU => .equ
TCLK2   EQU   PB25    =>         .equ   TCLK2, PB25
     SETA ==> .equ
     SETL ==> .equ
BUSWIDTH SETA 16   => .equ BUSWIDTH, 16
 
4, EXPORT => .global
     IMPORT => .extern
     GBLL => .global
     GBLA => .global
 
5, DCD => .long
 
6, IF :DEF: => .IFDEF
     ELSE => .ELSE
     ENDIF => .ENDIF
     :OR:    => |
     :SHL:    =>      <<
 
7,   END    =>.end
NOTE:在被include的头文件中,如"option.a"中,不再需要.end,否则会导致主汇编程序结束。
 
8,   符号定义加":"号
Entry =>    Entry:
AREA Word, CODE, READONLY ==> .text
AREA Block, DATA, READWRITE ==> .data
CODE32     ==> .arm
CODE16     ==> .thumb
 
9,   MACRO ==>   .macro
     MEND   ==> .endm
 
阅读(2501) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~