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.

28035 cla程序

在28035内核cla中:

MMOV32 MR2,MR1,LT这句汇编怎么理解呢?

  • 意思是如果MSTF寄存器的NF位为1,则将MR1的值加载到MR2中。

  • 判断条件是,MR1的值小于MR2的值,将MR1赋给MR2,还是MR2的小于MR1的值时,将MR1赋给MR2呢

  • 前边的判断语句是什么

  • 前面就没有判断语句啊,我才问的。这是CLA文档的例程 

    TMS320x2803x Piccolo Control Law Accelerator
    (CLA)
    Reference Guide

    ; Given: X = 8.0
    ; Y = 7.0
    ; A = 2.0
    ; B = 5.0
    ; _ClaTask1
    MMOV32 MR3, @_X ; MR3 = X = 8.0
    MMOV32 MR0, @_Y ; MR0 = Y = 7.0
    MMAXF32 MR3, MR0 ; ZF = 0, NF = 0, MR3 = 8.0
    MMOV32 MR1, @_A, GT ; true, MR1 = A = 2.0
    MMOV32 MR1, @_B, LT ; false, does not load MR1
    MMOV32 MR2, MR1, GT ; true, MR2 = MR1 = 2.0
    MMOV32 MR2, MR0, LT ; false, does not load MR2
    MSTOP

  • 是根据MMAXF32 MR3, MR0 ;来判断的,也就是说如果MR0>MR3的话,NF为1 ,则LT为真,MMOV32 MR2, MR0, LT ;语句就会加载MR0的值到MR2。反之就不会加载。

  • 谢谢您的耐心解答啊

  • 我还想问下,我在用cla.asm模块时,在其它.c文件中定义一个变量A,用A来改变cla.asm中的变量B,初始化也对,我发现无论A怎么改变,B都不随A的值改变,我想问的是,难道去CLA.asm文件中的变量B改变时还需要其它触发源或者寄存器配置吗》?

x 出现错误。请重试或与管理员联系。