This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
部件号:LAUNCHXL-F2.8377万S
工具/软件:Code Composer Studio
您好,
我正在尝试运行汇编器功能C
... extern unsigned int asmfunc( int Vref, int Vadc, int b0); void main(void) { test = asmfunc( 4,5,8);}...
SPRU514L (第145/203页)第7.3 章1 5:
您可以看到int Vref被放置在Al寄存器中,Vadc被放置在AH寄存器中。 此零件工作正常。
但是b0放在堆栈中。
如何获取b0值的访问权限?
SPRU430F在第85/551页上,我尝试了不同的堆栈寻址模式
.global _asmfunc _asmfunc: ;Al = 4 ; AH = 5 附加附件,*-SP[1]
您好,Jonas:
很抱歉耽误你的时间,我之前没有看到你对我的帖子的回复。
从编译器指南(SPR514,第7.3 .1节)中,
(e)其余16位参数按Al,AH,XAR4,XAR5的顺序排列(如果可用)。
4.未放置在寄存器中的任何剩余参数将按相反顺序推入堆栈。 即
放置在堆栈上的最左侧参数将最后推入堆栈。 所有32位参数均为
与堆栈上的偶数地址对齐。
因此,D1和C1应该已放置在堆栈上,如图所示
;;|_______ |<-堆栈指针(SP)
;;|_______ |<- C1 (SP-1)
;;|_______ |<- D1 (SP-2)
;;|_______ |<-返回呼叫功能的PC (SP-4)
中How can I add for example vref+b0? ;Vref被置于AL
添加AL,@AR4;添加Vref (Al)和b0 (XAR4的下半部分)