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

在汇编中,读写C文件中结构体 的问题!

c文件中,定义一个结构体

struct  CtrlTag

{

struct  CtrlTag

{

int32_t var1:

int32_tvar2:

.

.

.

.int32_t var512

}buck;

}l_ctrl;

在asm中 

.ref l_ctrl

MOVL XAR0, #_l_Ctrl.buck.var1 
MOVL *XAR0,ACC

。。。。。

MOVL XAR0, #_l_Ctrl.buck.var2
MOVL *XAR0,ACC

。。。。。

MOVL XAR0, #_l_Ctrl.buck.var3
MOVL *XAR0,ACC

。。。。。

MOVL XAR0, #_l_Ctrl.buck.var4
MOVL *XAR0,ACC

。。。。。

MOVL XAR0, #_l_Ctrl.buck.var5
MOVL *XAR0,ACC

问题:

我的ASM文件中,在不同的地方,要将 ACC的数据写入到结构体中的var1 ~ var5。

仿真时发现,var1 ~ var5这5个变量中,有的变量可能会出现写入错误(可能是var1,var2,var4是正确的,var3,var5是错误的)。

断点定到MOVL *XAR0,ACC,通过查看 Registers -> core Registers -> XARn ,  

发现 XARn 保存的并不是 #_l_Ctrl.buck.varN的地址!

请问,这是什么问题?

user1601657:

回复 mangui zhang:

好建议,谢谢!

下次可以尝试一下。

想确认一下。

MOVL XAR0, #_l_Ctrl.buck.var5  :将 var5的地址放到XAR0MOVL *XAR0,ACC                         ;将ACC 写到var5

这样理解没问题吧?

赞(0)
未经允许不得转载:TI中文支持网 » 在汇编中,读写C文件中结构体 的问题!
分享到: 更多 (0)