查了一天的网站和书,都说直接用.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中调试通过