TI中文支持网
TI专业的中文技术问题搜集分享网站

28335 汇编指令,求大神进来解读下这个汇编代码段,多谢

L31A206: MOVL *SP++,ACC 

MOVL ACC,*-SP[0x06] 

CSB ACC 

LSLL ACC,T 

MOVL @XAR4,ACC

LSR AH,#0x6

SBF L31A247,EQ 

MOVZ AR0,@AH 

MOVL XAR7,#0x3FE412 

MOVB AH,#0x31 

SUBR @TH,AH 

MOVL XAR5,@XT

MOVL XT,*+XAR7[AR0]

MOVL XAR7,#0x3FE502

MOVL XAR6,*XAR7++

IMPYL P,XT,@XAR4 ;

QMPYL ACC,XT,@XAR4

LSL64 ACC:P,#0x1

SUBL ACC,@XAR6

NEG ACC

IMPYL P,XT,@ACC

QMPYL ACC,XT,@ACC

LSL64 ACC:P,#0x3

MOVL XT,@ACC

IMPYL P,XT,@XAR4

QMPYL ACC,XT,@XAR4

LSL64 ACC:P,#0x1

SUBL ACC,@XAR6

NEG ACC

IMPYL P,XT,@ACC

QMPYL ACC,XT,@ACC

LSL64 ACC:P,#0x3

MOVL XT,*–SP

IMPYL P,XT,@ACC

QMPYL ACC,XT,@ACC

LSL64 ACC:P,#0x2

MOVL XT,@XAR5

ASR64 ACC:P,T

ADDUL P,*XAR7++

ADDCL ACC,*XAR7++

MINL ACC,*+XAR7[2]

MINCUL P,*+XAR7[0]

MAXL ACC,*+XAR7[6]

MAXCUL P,*+XAR7[4]

ASR64 ACC:P,#0x1

MOVL ACC,@P

LRETR

上面为 L31A206函数中的代码,从代码中变量看只有第一行MOVL *SP++,ACC 中ACC,在调用这个函数时已经计算好,其他的变量均在函数内部完成赋值。调用

完这个函数均是取这个函数中执行完结果的ACC值赋值到其他变量,有以下几点疑问

1、这个函数时大概是完成什么用的?

2、看了有很多地方调用,均计算好了第一行MOVL *SP++,ACC 中的ACC,如果理解为一个函数的传人变量ACC的话,那么后

面第二行 MOVL ACC,*-SP[0x06] 中不明白*-SP[0x06] 是多少,因为整个函数的变量都能在函数中完成赋值,不需要其他的传人,那么MOVL ACC,*-SP[0x06]  中和

第一行MOVL *SP++,ACC有什么关联吗,否则整个函数在多处被调用,如何实现得到不同的值 ?

jianxing ding:

回复 Hongbin Zhao:

多谢,非常感谢!

赞(0)
未经允许不得转载:TI中文支持网 » 28335 汇编指令,求大神进来解读下这个汇编代码段,多谢
分享到: 更多 (0)