arm伪指令详述
1、AREA语法格式:AREA段名属性1,属性2,……AREA伪指令用于定义一个代码段或数据段。其中,段名若以数字开头,则该段名需用 ―|‖括起来,如|1_test|。属性字段表示
1AREA 、 语法格式: AREA12 ,属性,…… 段名属性 AREA| ―‖ 伪指令用于定义一个代码段或数据段。其中,段名若以数字开头,则该段名需用 |1_test| 。 括起来,如 属性字段表示该代码段(或数据段)的相关属性,多个属性用逗号分隔。常用的属性如下: CODEY READONL —。 属性:用于定义代码段,默认为 DATA READWRITE —。 属性:用于定义数据段,默认为 YY READONLREADONL —。 属性:指定本段为只读,代码段默认为 READWRITEREADWRITE —。 属性:指定本段为可读可写,数据段的默认属性为 ALIGNALIGNELF —(可执行连接文件)的代码 属性:使用方式为表达式。在默认时, 0312 ~,相应的对齐方式为 段和数据段是按字对齐的,表达式的取值范围为表达式次方。 COMMON — 属性:该属性定义一个通用的段,不包含任何的用户代码和数据。各源文件 COMMON 中同名的段共享同一段存储单元。 一个汇编语言程序至少要包含一个段,当程序太长时,也可以将程序分为多个代码段和数据 段。 使用示例: AREAInitCODEY READONL ,, 指令序列 Init ;该伪指令定义了一个代码段,段名为,属性为只读 2ALIGN 、 语法格式: ALIGN{{}} ,偏移量 表达式 ALIGN| 。其中,表达 伪指令可通过添加填充字节的方式,使当前位置满足一定的对其方式 2124816 、、、、 式的值用于指定对齐方式,可能的取值为的幂,如等。若未指定表达式, 则将当前位置对齐到下一个字的位置。偏移量也为一个数字表达式,若使用该字段,则当前 2 位置的对齐方式为:的表达式次幂+偏移量。 使用示例: AREAInitCODEYALIEN38 READONL ,,,=;指定后面的指令为 字节对齐。 指令序列 END 3CODE16CODE32 、、 语法格式: CODE16CODE32 (或) CODE1616Thumb 伪指令通知编译器,其后的指令序列为位的指令。 CODE3232ARM 伪指令通知编译器,其后的指令序列为位的指令。 ARMThumbCODE16 若在汇编源程序中同时包含指令和指令时,可用伪指令通知编译器 16ThumbCODE3232 其后的指令序列为位的指令,伪指令通知编译器其后的指令序列为 ARMARMThumb 位的指令。因此,在使用指令和指令混合编程的代码里,可用这两条伪 指令进行切换,但注意他们只通知编译器其后指令的类型,并不能对处理器进行状态的切换。 使用示例: AREAInitCODEY READONL ,, …… CODE3232ARM ;通知编译器其后的指令为 位的指令

