zoukankan      html  css  js  c++  java
  • (转)关于汇编ARM指令DCD

    数据定义( Data Definition )伪指令

    数据定义伪指令一般用于为特定的数据分配存储单元,同时可完成已分配存储单元的初始化。

    — DCD ( DCDU ) 用于分配一片连续的字存储单元并用指定的数据初始化。

    3、 DCD(或DCDU)

    语法格式:

    标号 DCD (或 DCDU ) 表达式

    DCD (或 DCDU )伪指令用于分配一片连续的字存储单元并用伪指令中指定的表达式初始化。其中,表达式可以为程序标号或数字表达式。 DCD 也可用 “ & ” 代替。

    用 DCD 分配的字存储单元是字对齐的,而用 DCDU 分配的字存储单元并不严格字对齐。

    使用示例:

    DataTest DCD 4 , 5 , 6 ;分配一片连续的字存储单元并初始化。

    举例1:

    SwiFunction
            DCD     TASK_SW                ;0
            DCD     ENTER_CRITICAL         ;1
            DCD     EXIT_CRITICAL            ;2
            DCD     ISRBegin                 ;3
            DCD     ChangeToSYSMode         ;4
            DCD     ChangeToUSRMode         ;5
            DCD     __OSStartHighRdy        ;6
            DCD     TaskIsARM               ;7
            DCD     TaskIsTHUMB             ;8
            DCD     OSISRNeedSwap           ;9
            DCD     GetOSFunctionAddr       ;10
            DCD     GetUsrFunctionAddr      ;11

    TASK_SW
            MRS     R3, SPSR                        ;保存任务的CPSR

            MOV     R2, LR                          ;保存任务的PC

    举例2:

    语句如下:
    FiqStackSpace SPACE FIQ_Stack_Legth
    FiqStack DCD FiqStackSpace + FIQ_Stack_Legth

    最后一条语句,DCD的后面跟FiqStackSpace + FIQ_Stack_Legth,
    DCD后面的FiqStackSpace,表示一串空字符,这好理解
    但是再上FIQ_Stack_Legth,就不明白了,WHY?

    FiqStackSpace是标号,相当与地址,实际上就是在FiqStackSpace SPACE FIQ_Stack_Legth 这个语句给分配的空间的首地址,FiqStackSpace+ FIQ_Stack_Legth 是这个地址空间的结束地址,将FiqStack指向这个地址,当做栈的顶部,该栈向下生长,长度FIQ_Stack_Legth

    来源:http://blog.sina.com.cn/s/blog_6ce750930100uner.html

  • 相关阅读:
    inotifywait实时监控文件目录
    centos7支持xming
    ssh目录权限说明
    利用xinetd实现简单web服务器
    python3 使用http.server秒速搭建web服务器
    linux FFMPEG 摄像头采集数据推流
    Linux nginx+rtmp服务器配置实现直播点播
    Nginx中加入nginx-rtmp-module
    ubuntu查看屏幕分辨率
    运用设计原则编写可测试性的代码
  • 原文地址:https://www.cnblogs.com/emptyYPen/p/6146888.html
Copyright © 2011-2022 走看看