DSP

dsp优化-线性汇编中调用全局变量

2019-07-13 11:41发布

  查了一天的网站和书,都说直接用.global或者.ref申明一下全局变量就可以了,可是我的一直出错。
自己摸索了一天,调试了一天才调试成功,为了各位和我一样的小菜鸟们节省时间,贴出个简单的例子。
顺便吐槽某些大牛。。。。
;int g_arr[10] = {0,1,2,3,4,5,6,7,8,9};
;int g_b = 10;
                .global add
                .ref g_arr
                .global g_b
add:            .cproc  cnt
                .reg sum,tmp,arr,b

                ZERO sum
                MVKL g_arr,arr
                MVKH g_arr,arr
                MVKL g_b,b
                MVKH g_b,b
                LDW  *+b[0],b

add_1oop:       LDW *arr++,tmp
                ADD sum,tmp,sum
                SUB cnt,1,cnt

         [cnt]  B add_1oop
                ADD sum,b,sum
                .return sum
                .endproc
g_arr和g_b是定义的全局变量。其中.ref可以更换为.global
add函数原型为 int  add(int k);上面的程序在ccs5.3中调试通过