This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于汇编指令不太明白



MOVW    DP,#_wSamplePointer0

上面汇编指令的意思,在什么情况下使用,看资料是“装载整个数据页面”,但还是不太理解,求解?????????

  • 补充:MOVL    XAR0,@_pHB1CurrTab

    其中,pHB1CurrTab[10]是数组,那么上面那条是什么意思,是将XAR0寄存器指向pHB1CurrTab首地址吗,还是将pHB1CurrTab[0]值赋给XAR0?

  • MOV指令的基本格式是:movx source, destination。

    source 和 destinatino 的值可以是内存地址,存储在内存中的数据值,指令语句中定义的数据值,或者是寄存器。

    注意:GNU汇编器使用 AT&T 样式的语法,所以其中的源和目的操作数和 Intel 文档中给出的顺序是相反的。

        GNU汇编器为 mov 指令添加了一个维度,在其中必须声明要传送的数据元素的长度。
        通过吧一个附加字符添加到 MOV 助记符来声明这个长度。
        因此,指令就变成了如下:
            movx
            其中 x 可以是下面的字符:
                1,l用于32位的长字值
                2,w用于16位的字值
                3,b用于8位的字节值

     

    另外,DP是状态寄存器ST0的数据页指针,对其操作时通常称为装载数据页。

  • 指令集中的@是什么意思?

    如:

    MOV     @_wHB2CurrNegCnt,#0

    MOVL    XAR2,@_pHB2CurrTab  ;;其中pHB2CurrTab为数组

    MOV     ACC,@_wHB2UpChkPointer

    求解?

  • 当使用C28x语法时,64字的数据页通过“@”符号表示,以帮助程序员理解当前正在使用哪种寻址模式

  • 非常感谢你的持续解答!

    我想再问个问题,关于汇编里面变量定义:

    _pHB1CurrTab   .usect "Bst_cntl1",2,1,1

    _wSamplePointer0  .usect "Bst_cntl1",1

    _dwHB1CurrMaxSum      .usect "Bst_cntl1",2,1,1

    为什么有些后面是2,1,1;而有些又不是,什么原因哦,定义在哪个资料里面有吗?

  • 汇编指令.usect,未初始化变量保留存储空间的自定义段,通常用作 .usect     "A",10   在数据存储器中留出10个单元作为堆栈区,名为A

    而类似 .usect ”section name”, size in words [, blocking flag] [, alignment flag] [, type],请参看附件第4-80页,有详细说明

    TMS320C28x Assembly Language Tools User's Guide.pdf