code warrior disassemble code question

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

code warrior disassemble code question

跳至解决方案
974 次查看
lvyang
Contributor III

code warrior IDE(5.9.0)

MCU:SPC560P34

e_stwu   rsp,-32(rsp)

 

I find this code on every function disassemble code first line.

who can tell me what's the meaning or reference doc?

Thanks.

标签 (1)
0 项奖励
1 解答
772 次查看
martin_kovar
NXP Employee
NXP Employee

Hi,

this instruction allocates stack for the function. At the end of the function, there is something like se_addi r1,0x20 which returns stack pointer to the previous position (before function was called).

Regards,

Martin

在原帖中查看解决方案

0 项奖励
4 回复数
773 次查看
martin_kovar
NXP Employee
NXP Employee

Hi,

this instruction allocates stack for the function. At the end of the function, there is something like se_addi r1,0x20 which returns stack pointer to the previous position (before function was called).

Regards,

Martin

0 项奖励
772 次查看
lvyang
Contributor III

Hi Martin,

Does the compile define the symble "rsp" as a stack pointer?

If so how to realize push and pop function.

Thanks in advance.

0 项奖励
772 次查看
martin_kovar
NXP Employee
NXP Employee

Hello,

rsp is only (compiler) symbolic name for r1 register. If you look at the PPC EABI standard, you will find there that r1 register is always stack pointer.

What do you mean by push and pop functions?

If you create and call function in C language, compiler automatically create stack frame for this function.

But you can use nofralloc directive in your asm function:

pastedImage_1.png

Regards,

Martin

0 项奖励
772 次查看
lvyang
Contributor III

Thanks a lot.

0 项奖励