Chinaunix首页 | 论坛 | 博客
  • 博客访问: 291369
  • 博文数量: 65
  • 博客积分: 1490
  • 博客等级: 上尉
  • 技术积分: 835
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-16 20:00
文章分类

全部博文(65)

文章存档

2015年(1)

2012年(3)

2010年(7)

2009年(54)

我的朋友

分类: LINUX

2009-03-17 09:52:47

 

 /*

*By Neil Chiao ()

*转载请注明出处:neilengineer.cublog.cn

*欢迎到“新星湾()”指导

*/

 

 

  ARM汇编源程序由汇编指令,伪操作,宏指令和伪指令组成。目前常用的ARM编译环境有2种:
1)ARM ASM: ARM
公司的IDE,其中使用了CodeWarriorARM编译器;

2)GNU ARM ASM: GNU提供的ARM 编译器等工具集,对于u-boot就是arm-linux-gcc,与ARM ASM略有不同。

 

下列为常见的GNU ARM汇编伪指令:

 

1. abort

.abort: 停止汇编

2..align abs-expr1, abs-expr2

   以某种对齐方式,在未使用的存储区域填充值. 第一个值表示对齐方式,4, 8,1632. 二个表达式值表示填充的值.


3. if...else...endif
.if
.else
.endif:
支持条件预编译


4. include
.include "file":
包含指定的头文件, 可以把一个汇编常量定义放在头文件中.

5. data
.data subsection:
说明接下来的定义归属于subsection数据段.


6.  equ
.equ symbol, expression:
把某一个符号(symbol)定义成某一个值(expression).该指令并不分配空间.


7. global
.global symbol:
定义一个全局符号, 通常是为ld使用.


8. ascii
.ascii "string":
定义一个字符串并为之分配空间.


9. byte
.byte expressions:
定义一个字节, 并为之分配空间.


10. short
.short expressions:
定义一个短整型并为之分配空间.


11. int
.int expressions:
定义一个整型,并为之分配空间.


12 long
.long expressions:
定义一个长整型, 并为之分配空间.


13 word
.word expressions:
定义一个字,并为之分配空间, 4 bytes.


14. macro/endm
.macro:
定义一段宏代码, .macro表示代码的开始, .endm表示代码的结束.


15. 
code
.code [16|32]:
指定指令代码产生的长度, 16表示Thumb指令, 32表示ARM指令.


16. ltorg
.ltorg:
表示当前往下的定义在归于当前段,并为之分配空间.

 

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