|
请教:关于2812的C与汇编混合编程的问题
我的主程序是用C编的,一个IIR滤波的子程序是用汇编写的,在接口的时候参考了2407的接口程序如下:
入口:
POPD *+ //把返回地址保存在C堆栈
SAR AR0,*+ //保护FP
SAR AR1,* //保护SP
LARK AR0,#1 //桢的长度
LAR AR0,*0+,AR2 //建立FP和SP
出口:
MAR *,AR1
SBRK 2
LAR AR0,*-
PSHD *
RET
我把这段程序翻译成了2812的程序,因为2407的指令在2812上不能运行。下面是我修改过的程序:
入口:
POP *++
MOV *++,AR0
MOV *,AR1
MOVB XAR0,#1H
MOVZ AR0,*0++
出口:
NOP *,ARP1
SBRK #2H
MOVZ AR0,*--
PUSH *
XRETC UNC
在程序调试运行时从汇编子程序出来后进入了非法指令陷阱服务程序,出不来。希望哪位高手如果知道的话能够不吝赐教。如果谁做过这部分内容,希望能够把接口程序贴出来参考一下,小弟将不胜感激。
急用,在线等。。。。。。。。。。。。
|
|