zoukankan      html  css  js  c++  java
  • AREA |.text|, CODE, READONLY, ALIGN=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字节对齐的代码调用.
  • 相关阅读:
    Android ble 蓝牙4.0 总结
    Java byte数据类型详解
    Cocos2d-X在SwitchControl使用
    【翻译mos文章】Linux x86 and x86-64 系统SHMMAX最大
    poj 2478 Farey Sequence(欧拉函数是基于寻求筛法素数)
    Akka FSM 源代码分析
    HDU 4828 (卡特兰数+逆)
    [JSP][JSTL]页面调用函数--它${fn:}内置函数、是推断字符串是空的、更换车厢
    android 中国通信乱码问题
    Recall(检出率)和 Precision(准确性)
  • 原文地址:https://www.cnblogs.com/qiyuexin/p/12608776.html
Copyright © 2011-2022 走看看