5835|10

79

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

ARM指令TEXTAREA是什么意思? [复制链接]

TEXTAREA  ;请问这句是什么意思
IMPORT  main

此帖出自ARM技术论坛

最新回复

以前以为是个伪指令啥的,原来是这个  详情 回复 发表于 2009-11-6 19:06
点赞 关注
 

回复
举报

79

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
顾名思义,text area
汇编文档中有讲述这个东西
此帖出自ARM技术论坛
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
翻译过来时text的area  哈哈
此帖出自ARM技术论坛
 
 
 

回复

48

帖子

0

TA的资源

一粒金砂(初级)

4
 
@textarea
。。。。

@endarea
一般会合在一起用,标示代码域吧
此帖出自ARM技术论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

5
 
AREA sectionname {} {}
其中, sectionname 是所定义的代码段或者数据的名称。
        text表示C语言编译器产生的代码段或者与C语言库相关的代码段。
此帖出自ARM技术论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用楼主 lianghongge 的回复:
TEXTAREA? ;请问这句是什么意思
IMPORT? main




在wince下的kxarm.h有
Module Name:
;
;    kxarm.h
;
; Abstract:
;
;    This is an implementation of the WINCE/ARM Calling Sequence
;    Specification.
;
; Environment:
;    String Library
;
; Revision History:
;--

                GBLS    VBar
VBar        SETS    "|"
                GBLL        HaveExceptHandler
                GBLS        AreaName
                GBLS        FuncName
                GBLS        PrologName
                GBLS        FuncEndName
                GBLS        ExceptHandler
                GBLS        ExceptData
AreaName SETS        "|.text|"
HaveExceptHandler SETL {FALSE}

        MACRO
        TEXTAREA

        AREA |.text|,ALIGN=2,CODE,READONLY
AreaName SETS "|.text|"
        MEND

    MACRO
    THUMBAREA
    AREA |.text|,ALIGN=2,CODE,READONLY,THUMB
AreaName SETS "|.text|"
    MEND

        MACRO
        STARTUPTEXT
        AREA |.astart|,ALIGN=2,CODE
AreaName SETS "|.astart|"
        MEND

        MACRO
        START_REGION        $NameBegin
        LCLS    TempName
TempName SETS    VBar:CC:"$NameBegin":CC:VBar
        EXPORT        $TempName[DATA]
$TempName
        MEND

        MACRO
        END_REGION                $NameEnd
        LCLS    TempName
TempName SETS    VBar:CC:"$NameEnd":CC:VBar
        EXPORT        $TempName[DATA]
$TempName
        MEND

;
;   This macro should be used if the assembly function is in ARM
;

        MACRO
        NESTED_ARMENTRY        $Name
FuncName    SETS    VBar:CC:"$Name":CC:VBar
PrologName  SETS    VBar:CC:"$Name":CC:"_Prolog":CC:VBar
FuncEndName SETS    VBar:CC:"$Name":CC:"_end":CC:VBar
        LCLS        ExceptBit
        IF HaveExceptHandler
ExceptBit   SETS        "0x80000000"
        ELSE
ExceptBit   SETS        "0"
        ENDIF

        AREA |.pdata|,ALIGN=2,PDATA
        DCD            $FuncName
    DCD     (($PrologName-$FuncName)/4) :OR: ((($FuncEndName-$FuncName)/4):SHL:8) :OR: 0x40000000 :OR: $ExceptBit
        AREA $AreaName,CODE,READONLY
        ALIGN        2
        EXPORT        $FuncName
        IF HaveExceptHandler
    DCD $ExceptHandler
    DCD $ExceptData
HaveExceptHandler SETL {FALSE}
        ENDIF
$FuncName
        ROUT
        MEND

;
;   This macro should be used if the assembly function is in THUMB
;
        MACRO
        NESTED_THUMBENTRY        $Name
FuncName    SETS    VBar:CC:"$Name":CC:VBar
PrologName  SETS    VBar:CC:"$Name":CC:"_Prolog":CC:VBar
FuncEndName SETS    VBar:CC:"$Name":CC:"_end":CC:VBar
        LCLS        ExceptBit
        IF HaveExceptHandler
ExceptBit   SETS        "0x80000000"
        ELSE
ExceptBit   SETS        "0"
        ENDIF

        AREA |.pdata|,ALIGN=2,PDATA
        DCD            $FuncName
    DCD     (($PrologName-$FuncName)/2) :OR: ((($FuncEndName-$FuncName)/2):SHL:8) :OR: $ExceptBit
        AREA $AreaName,CODE,READONLY
        ALIGN        2
        EXPORT        $FuncName
        IF HaveExceptHandler
    DCD $ExceptHandler
    DCD $ExceptData
HaveExceptHandler SETL {FALSE}
        ENDIF
$FuncName
        ROUT
        MEND

;
;   This macro should be used if the assembly function is in ARM
;
        MACRO
        NESTED_ENTRY        $Name
FuncName    SETS    VBar:CC:"$Name":CC:VBar
PrologName  SETS    VBar:CC:"$Name":CC:"_Prolog":CC:VBar
FuncEndName SETS    VBar:CC:"$Name":CC:"_end":CC:VBar
        LCLS        ExceptBit
        IF HaveExceptHandler
ExceptBit   SETS        "0x80000000"
        ELSE
ExceptBit   SETS        "0"
        ENDIF

        AREA |.pdata|,ALIGN=2,PDATA
        DCD            $FuncName
    DCD     (($PrologName-$FuncName)/4) :OR: ((($FuncEndName-$FuncName)/4):SHL:8) :OR: 0x40000000 :OR: $ExceptBit
        AREA $AreaName,CODE,READONLY
        ALIGN        2
        EXPORT        $FuncName
        IF HaveExceptHandler
    DCD $ExceptHandler
    DCD $ExceptData
HaveExceptHandler SETL {FALSE}
        ENDIF
$FuncName
        ROUT
        MEND

        MACRO
        PROLOG_END
$PrologName
        MEND

        MACRO
        LEAF_ENTRY        $Name
FuncName SETS    VBar:CC:"$Name":CC:VBar
PrologName SETS        "Invalid Prolog"
FuncEndName SETS    VBar:CC:"$Name":CC:"_end":CC:VBar
        ALIGN        2
        EXPORT        $FuncName
$FuncName
        ROUT
        MEND

        MACRO
        ALTERNATE_ENTRY        $Name
        LCLS    TempName
TempName SETS    VBar:CC:"$Name":CC:VBar
        EXPORT        $TempName
$TempName
        MEND

        MACRO
        ENTRY_END        $Name
$FuncEndName
        MEND

        MACRO
        EXCEPTION_HANDLER        $Handler
ExceptHandler SETS    VBar:CC:"$Handler":CC:VBar
ExceptData SETS "0"
HaveExceptHandler SETL {TRUE}
        MEND

        MACRO
        EXCEPTION_HANDLER_DATA        $Handler, $HandlerData
ExceptHandler SETS    VBar:CC:"$Handler":CC:VBar
ExceptData SETS    VBar:CC:"$HandlerData":CC:VBar
HaveExceptHandler SETL {TRUE}
        MEND

        MACRO
        EXCEPTION_HANDLER_MILLICODE        $Handler, $HandlerData
ExceptHandler SETS    "$Handler"
ExceptData SETS    "$HandlerData"
HaveExceptHandler SETL {TRUE}
        MEND


        END

只是个宏,嘿嘿。

此帖出自ARM技术论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

7
 
顶楼上,不过这些你也不必要知道它的具体含义的啊
此帖出自ARM技术论坛
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

8
 
表示是代码段(域),可能是告诉编译器的
此帖出自ARM技术论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 5 楼 gooogleman 的回复:
引用楼主 lianghongge 的回复:
TEXTAREA? ;请问这句是什么意思
IMPORT? main




在wince下的kxarm.h有
Module Name:
;
;? ? kxarm.h
;
; Abstract:
;
;? ? This is an implementation of the WINCE/ARM Calling Sequence
;? ? Specification.
;
; Environment:
;? ? String Library
;
; Revision History:
;--

GBLS? ? VBar
VBar SETS? ? "|"
GBLL HaveExceptHandler
GBLS AreaName
GBLS FuncName
GBLS PrologName
GBLS FuncEndName
GBLS ExceptHandler
GBLS ExceptData
AreaName SETS "|.text|"
HaveExceptHandler SETL {FALSE}

MACRO
TEXTAREA
AREA |.text|,ALIGN=2,CODE,READONLY
AreaName SETS "|.text|"
MEND

? ? MACRO
? ? THUMBAREA
? ? AREA |.text|,ALIGN=2,CODE,READONLY,THUMB
AreaName SETS "|.text|"
? ? MEND

MACRO
STARTUPTEXT
AREA |.astart|,ALIGN=2,CODE
AreaName SETS "|.astart|"
MEND

MACRO
START_REGION $NameBegin
LCLS? ? TempName
TempName SETS? ? VBar:CC:"$NameBegin":CC:VBar
EXPORT $TempName[DATA]
$TempName
MEND

MACRO
END_REGION $NameEnd
LCLS? ? TempName
TempName SETS? ? VBar:CC:"$NameEnd":CC:VBar
EXPORT $TempName[DATA]
$TempName
MEND

;
;? This macro should be used if the assembly function is in ARM
;

MACRO
NESTED_ARMENTRY $Name
FuncName? ? SETS? ? VBar:CC:"$Name":CC:VBar
PrologName? SETS? ? VBar:CC:"$Name":CC:"_Prolog":CC:VBar
FuncEndName SETS? ? VBar:CC:"$Name":CC:"_end":CC:VBar
LCLS ExceptBit
IF HaveExceptHandler
ExceptBit? SETS "0x80000000"
ELSE
ExceptBit? SETS "0"
ENDIF

AREA |.pdata|,ALIGN=2,PDATA
DCD ? ? $FuncName
? ? DCD? ? (($PrologName-$FuncName)/4) :OR: ((($FuncEndName-$FuncName)/4):SHL:8) :OR: 0x40000000 :OR: $ExceptBit
AREA $AreaName,CODE,READONLY
ALIGN 2
EXPORT $FuncName
IF HaveExceptHandler
? ? DCD $ExceptHandler
? ? DCD $ExceptData
HaveExceptHandler SETL {FALSE}
ENDIF
$FuncName
ROUT
MEND

;
;? This macro should be used if the assembly function is in THUMB
;
MACRO
NESTED_THUMBENTRY $Name
FuncName? ? SETS? ? VBar:CC:"$Name":CC:VBar
PrologName? SETS? ? VBar:CC:"$Name":CC:"_Prolog":CC:VBar
FuncEndName SETS? ? VBar:CC:"$Name":CC:"_end":CC:VBar
LCLS ExceptBit
IF HaveExceptHandler
ExceptBit? SETS "0x80000000"
ELSE
ExceptBit? SETS "0"
ENDIF

AREA |.pdata|,ALIGN=2,PDATA
DCD ? ? $FuncName
? ? DCD? ? (($PrologName-$FuncName)/2) :OR: ((($FuncEndName-$FuncName)/2):SHL:8) :OR: $ExceptBit
AREA $AreaName,CODE,READONLY
ALIGN 2
EXPORT $FuncName
IF HaveExceptHandler
? ? DCD $ExceptHandler
? ? DCD $ExceptData
HaveExceptHandler SETL {FALSE}
ENDIF
$FuncName
ROUT
MEND

;
;? This macro should be used if the assembly function is in ARM
;
MACRO
NESTED_ENTRY $Name
FuncName? ? SETS? ? VBar:CC:"$Name":CC:VBar
PrologName? SETS? ? VBar:CC:"$Name":CC:"_Prolog":CC:VBar
FuncEndName SETS? ? VBar:CC:"$Name":CC:"_end":CC:VBar
LCLS ExceptBit
IF HaveExceptHandler
ExceptBit? SETS "0x80000000"
ELSE
ExceptBit? SETS "0"
ENDIF

AREA |.pdata|,ALIGN=2,PDATA
DCD ? ? $FuncName
? ? DCD? ? (($PrologName-$FuncName)/4) :OR: ((($FuncEndName-$FuncName)/4):SHL:8) :OR: 0x40000000 :OR: $ExceptBit
AREA $AreaName,CODE,READONLY
ALIGN 2
EXPORT $FuncName
IF HaveExceptHandler
? ? DCD $ExceptHandler
? ? DCD $ExceptData
HaveExceptHandler SETL {FALSE}
ENDIF
$FuncName
ROUT
MEND

MACRO
PROLOG_END
$PrologName
MEND

MACRO
LEAF_ENTRY $Name
FuncName SETS? ? VBar:CC:"$Name":CC:VBar
PrologName SETS "Invalid Prolog"
FuncEndName SETS? ? VBar:CC:"$Name":CC:"_end":CC:VBar
ALIGN 2
EXPORT $FuncName
$FuncName
ROUT
MEND

MACRO
ALTERNATE_ENTRY $Name
LCLS? ? TempName
TempName SETS? ? VBar:CC:"$Name":CC:VBar
EXPORT $TempName
$TempName
MEND

MACRO
ENTRY_END $Name
$FuncEndName
MEND

MACRO
EXCEPTION_HANDLER $Handler
ExceptHandler SETS? ? VBar:CC:"$Handler":CC:VBar
ExceptData SETS "0"
HaveExceptHandler SETL {TRUE}
MEND

MACRO
EXCEPTION_HANDLER_DATA $Handler, $HandlerData
ExceptHandler SETS? ? VBar:CC:"$Handler":CC:VBar
ExceptData SETS? ? VBar:CC:"$HandlerData":CC:VBar
HaveExceptHandler SETL {TRUE}
MEND

MACRO
EXCEPTION_HANDLER_MILLICODE $Handler, $HandlerData
ExceptHandler SETS? ? "$Handler"
ExceptData SETS? ? "$HandlerData"
HaveExceptHandler SETL {TRUE}
MEND


END

只是个宏,嘿嘿。




谢谢你的回答,很详细.
此帖出自ARM技术论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 8 楼 lianghongge 的回复:
引用 5 楼 gooogleman 的回复:
引用楼主 lianghongge 的回复:
TEXTAREA? ;请问这句是什么意思
IMPORT? main


在wince下的kxarm.h有
Module Name:
;
;? ? kxarm.h
;
; Abstract:
;
;? ? This is an implementation of the WINCE/ARM Calling Sequence
;? ? Specification.
;
; Environment:
;? ? String Library
;
; Revision History:
;--

GBLS? ? VBar
VBar SETS? ? "|"
GBLL HaveExceptHandler
GBLS AreaName
GBLS FuncName
GBLS PrologName
GBLS FuncEndName
GBLS ExceptHandler
GBLS ExceptData
AreaName SETS "|.text|"
HaveExceptHandler SETL {FALSE}

MACRO
TEXTAREA
AREA |.text|,ALIGN=2,CODE,READONLY
AreaName SETS "|.text|"
MEND

? ? MACRO
? ? THUMBAREA
? ? AREA |.text|,ALIGN=2,CODE,READONLY,THUMB
AreaName SETS "|.text|"
? ? MEND

MACRO
STARTUPTEXT
AREA |.astart|,ALIGN=2,CODE
AreaName SETS "|.astart|"
MEND

MACRO
START_REGION $NameBegin
LCLS? ? TempName
TempName SETS? ? VBar:CC:"$NameBegin":CC:VBar
EXPORT $TempName[DATA]
$TempName
MEND

MACRO
END_REGION $NameEnd
LCLS? ? TempName
TempName SETS? ? VBar:CC:"$NameEnd":CC:VBar
EXPORT $TempName[DATA]
$TempName
MEND

;
;? This macro should be used if the assembly function is in ARM
;

MACRO
NESTED_ARMENTRY $Name
FuncName? ? SETS? ? VBar:CC:"$Name":CC:VBar
PrologName? SETS? ? VBar:CC:"$Name":CC:"_Prolog":CC:VBar
FuncEndName SETS? ? VBar:CC:"$Name":CC:"_end":CC:VBar
LCLS ExceptBit
IF HaveExceptHandler
ExceptBit? SETS "0x80000000"
ELSE
ExceptBit? SETS "0"
ENDIF

AREA |.pdata|,ALIGN=2,PDATA
DCD ? ? $FuncName
? ? DCD? ? (($PrologName-$FuncName)/4) :OR: ((($FuncEndName-$FuncName)/4):SHL:8) :OR: 0x40000000 :OR: $ExceptBit
AREA $AreaName,CODE,READONLY
ALIGN 2
EXPORT $FuncName
IF HaveExceptHandler
? ? DCD $ExceptHandler
? ? DCD $ExceptData
HaveExceptHandler SETL {FALSE}
ENDIF
$FuncName
ROUT
MEND

;
;? This macro should be used if the assembly function is in THUMB
;
MACRO
NESTED_THUMBENTRY $Name
FuncName? ? SETS? ? VBar:CC:"$Name":CC:VBar
PrologName? SETS? ? VBar:CC:"$Name":CC:"_Prolog":CC:VBar
FuncEndName SETS? ? VBar:CC:"$Name":CC:"_end":CC:VBar
LCLS ExceptBit
IF HaveExceptHandler
ExceptBit? SETS "0x80000000"
ELSE
ExceptBit? SETS "0"
ENDIF

AREA |.pdata|,ALIGN=2,PDATA
DCD ? ? $FuncName
? ? DCD? ? (($PrologName-$FuncName)/2) :OR: ((($FuncEndName-$FuncName)/2):SHL:8) :OR: $ExceptBit
AREA $AreaName,CODE,READONLY
ALIGN 2
EXPORT $FuncName
IF HaveExceptHandler
? ? DCD $ExceptHandler
? ? DCD $ExceptData
HaveExceptHandler SETL {FALSE}
ENDIF
$FuncName
ROUT
MEND

;
;? This macro should be used if the assembly function is in ARM
;
MACRO
NESTED_ENTRY $Name
FuncName? ? SETS? ? VBar:CC:"$Name":CC:VBar
PrologName? SETS? ? VBar:CC:"$Name":CC:"_Prolog":CC:VBar
FuncEndName SETS? ? VBar:CC:"$Name":CC:"_end":CC:VBar
LCLS ExceptBit
IF HaveExceptHandler
ExceptBit? SETS "0x80000000"
ELSE
ExceptBit? SETS "0"
ENDIF

AREA |.pdata|,ALIGN=2,PDATA
DCD ? ? $FuncName
? ? DCD? ? (($PrologName-$FuncName)/4) :OR: ((($FuncEndName-$FuncName)/4):SHL:8) :OR: 0x40000000 :OR: $ExceptBit
AREA $AreaName,CODE,READONLY
ALIGN 2
EXPORT $FuncName
IF HaveExceptHandler
? ? DCD $ExceptHandler
? ? DCD $ExceptData
HaveExceptHandler SETL {FALSE}
ENDIF
$FuncName
ROUT
MEND

MACRO
PROLOG_END
$PrologName
MEND

MACRO
LEAF_ENTRY $Name
FuncName SETS? ? VBar:CC:"$Name":CC:VBar
PrologName SETS "Invalid Prolog"
FuncEndName SETS? ? VBar:CC:"$Name":CC:"_end":CC:VBar
ALIGN 2
EXPORT $FuncName
$FuncName
ROUT
MEND

MACRO
ALTERNATE_ENTRY $Name
LCLS? ? TempName
TempName SETS? ? VBar:CC:"$Name":CC:VBar
EXPORT $TempName
$TempName
MEND

MACRO
ENTRY_END $Name
$FuncEndName
MEND

MACRO
EXCEPTION_HANDLER $Handler
ExceptHandler SETS? ? VBar:CC:"$Handler":CC:VBar
ExceptData SETS "0"
HaveExceptHandler SETL {TRUE}
MEND

MACRO
EXCEPTION_HANDLER_DATA $Handler, $HandlerData
ExceptHandler SETS? ? VBar:CC:"$Handler":CC:VBar
ExceptData SETS? ? VBar:CC:"$HandlerData":CC:VBar
HaveExceptHandler SETL {TRUE}
MEND

MACRO
EXCEPTION_HANDLER_MILLICODE $Handler, $HandlerData
ExceptHandler SETS? ? "$Handler"
ExceptData SETS? ? "$HandlerData"
HaveExceptHandler SETL {TRUE}
MEND


END

只是个宏,嘿嘿。




谢谢你的回答,很详细.

学习了
此帖出自ARM技术论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

11
 
以前以为是个伪指令啥的,原来是这个
此帖出自ARM技术论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表