汇编中的句子:AREA |Header Code|, CODE详解

将原来的 RSEG CODE:CODE:NOROOT(2)

  改成:

AREA |.text|, CODE, READONLY, ALIGN=2         ;AREA |.text| 选择段 |.text|。

                                                      ;CODE表示代码段,READONLY表示只读(缺省)

                                                       ;ALIGN=2表示4字节对齐。若ALIGN=n,这2^n对齐

THUMB                                         ;Thumb 代码

REQUIRE8                                      ;指定当前文件要求堆栈八字节对齐

PRESERVE8                                     ;令指定当前文件保持堆栈八字节对齐

 

 

 

------------------------------------------------华丽分割线---------------------------------------------------------------------------------------

-------------------------------------关于  AREA |.text|, CODE, READONLY, ALIGN=2 ---------------------------------------------------

 

语法

              AREA 段名 属性1, 属性2, ……

作用

              用于定义一个代码段或数据段。

              段名若以数字开头,则该段名需用“|”括起来,如|1_test| 。

              属性字段表示该代码段(或数据段)的相关属性,多个属性用逗号分隔。

常用的属性如下:

              CODE  定义代码段

              DATA  定义数据段

              READONLY 

                             指定本段为只读,代码段默认为READONLY

              READWRITE 

                             指定本段为可读可写,数据段的默认为READWRITE

             COMMON

                             定义一个通用的段,不包含任何的用户代码和数据。各源文件中同名的COMMON段共享同一段存储单元。

 

 

实例:AREA Init,CODE,READONLY 

 

语法

                ALIGN {表达式{,偏移量}}

作用

                通过添加填充字节的方式,使当前位置满足一定的对齐方式。其中,表达式的值用于指定对齐方式,可能的取值为2的幂,如1、2、4、8、16等。若未指定表达式,则将当前位置对齐到下一个字的位置。偏移量也为一个数字表达式,若使用该字段,则当前位置的对齐方式为:2的表达式次幂+偏移量。

 

 

实例:AREA    Init,CODE,READONLY,ALIGN=3  

 

------------------------------------------------华丽分割线---------------------------------------------------------------------------------------

-----------------------------------------------关于  THUMB------------------------------------------------------------------------------------------

语法

      THUMB

作用

      表示以下的代码都是THUMB代码。

 

------------------------------------------------华丽分割线---------------------------------------------------------------------------------------

---------------------------------------关于  REQUIRE8及PRESERVE8 ------------------------------------------------------------------

 

语法

 REQUIRE(语法格式:requite label)

作用

REQUIRE伪操作用于指定段之间的相互依赖关系.

格式如下:

REQUIRE    lable  ;其中lable 为所需要的标号的名称.

当进行连接处理包含有“REQUIRE   label”伪指令的源文件时,定义label 的源文件也将呗包含

 

语法

     REQUIRE8及PRESERVE8

作用

    REQUIRE8伪操作指示当前代码中要求数据栈8字节对齐 

PRESERVE8伪操作表示当前代码中数据栈是8字节对齐的

说明

  LDRD及STRD指令要求内存单元地址是8字节对齐的.当在程序中使用这些指令在数据栈中传送数据时,要求该数据栈是8字节对齐的,这时就需要用REQUIRE8伪指令来说明.链接器要保证要求8字节对齐的数据栈代码只能被数据栈是8字节对齐的代码调用.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值