Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1078771
  • 博文数量: 165
  • 博客积分: 3900
  • 博客等级: 中校
  • 技术积分: 1887
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-06 15:15
文章分类

全部博文(165)

文章存档

2020年(3)

2019年(8)

2017年(2)

2016年(8)

2015年(14)

2013年(15)

2012年(32)

2011年(11)

2010年(14)

2009年(7)

2008年(20)

2007年(31)

分类: LINUX

2007-04-24 17:54:28

Gun汇编的保留字不是很多书会提到的, 查找起来很不方便, 我自己整理了一下. 希望对以后有用.

.ascii 

string当成数据插入汇编中,armasmDCB类似.

.ascix 

类似 .ascii , 但在每个字符串后面跟一个零字节.

.balign {, {, } }

对齐地址到字节. 汇编器通过添加字节或者默认值来对齐, 如果需要填充的字节数大于, 则对齐不会发生.

.byte  {, } ….

把一系列的字节当成数据插入汇编, armasmDCB类似.

.code 

bit 位役置指令的长度. 16位是Thumb, 32位是ARM, 这和armasmCODE16CODE32类似.

.else

使用在.if .endif 之间. armasmr ELSE类似.

.end

标记一个汇编文件的结束. 这个通常被省略.

.endif

标志着条件汇编代码块的结束, armasmENDIF类似

.endm

结束一上宏定义. armasmMEND类似

.endr

结束一个循环, armasmWEND类似

.equ ,

设置一个标号(symbol)的值, armasmEQU类似

.err

以一个错误导致汇编的结束.

.exitm

从当前宠定义体中提前退出. armasmMEXIT类似

.global

给标号一个外部连接. armasmr EXPORT类似

.hword {, } …

把一系列的16位数当成数据插入汇编, armasm DCW类似

.if < logical_expression>

定义一个条件块, .endif 结束. armasmr IF类似

.ifdef

    如果 是定义了的,则包含(include)下面的一段代码块, 这个代码块以 .endif来结束.

.ifndef

   如果 是没有定义了的,则包含(include)下面的一段代码块, 这个代码块以 .endif来结束.

.include  

包含指定的源文件. armasmr INCLUDE或者和C#INCLUDE类似

.irp {, } {, }….

    开启一个循环的代码块,块中每个value列表的value 执行一次, 块以一个 .endr 来标记结束. 在循环的代码块中, 使用 \来替代value列表中的value.

.macro { } {,} …{, }

    定义一个含有k个参数的名为的宏. 宏定义必须以 .endm 来标记结束. 如果想提前跳出宏, 则可使用 .exitm . 这些和armasm中的MACRO, MEND和平MEXIT类似, 必须在宏参数前加一个”\”

.macro SHIFTLEFT a, b

      .if  \b<0

          MOV \a, \a, ASR #-\b

          .exitm

      .endif

      MOV  \a, \a, LSL #\b

.endm

.rept

按照指定的次数重复执行一个代码块, 这个块以 .endr 来标记结束

.req

     为一个寄存器取个名字, tkg armasmRN类似, 但这里右边的寄存器不能只给出寄存器号, 必须给出具体的寄存器, acc  .req  r0.

.section {, “”}

开始一个新的代码段或者数据段, 通常, 代码段称为 .text, 一个经过初始化的数据段称为 .data,  一个没有初始化的数据段称为 .bss . 它们都有默认的标记(flag), 连接器识别它们的默认名字, armasmAREA类似,

ELF格式文件的

     标记                      含义

       a                      可分配段

       w                      可写段

       x                       可执行段

.set ,

设置一个变量的值, armasmSETA类似

.space {,}

生成给定数量的字节, 如果指定了, 则以指定的值填充每个字节, 如果没指定, 则以0 填充每个字节. armasmSPACE类似

.word {,}…

        把一系列的32位字当成数据插入汇编, armasmDCD类似

阅读(1235) | 评论(0) | 转发(0) |
0

上一篇:AT&T asm

下一篇:AT91RM9200 PIO

给主人留下些什么吧!~~