简体   繁体   English

'.dcall'在汇编代码中的含义是什么?

[英]What does '.dcall' mean in assembly code?

I'm trying to understand a program in assembly code which should be compiled with COSMIC compiler to run on STM8 controller. 我正在尝试理解汇编代码中的程序,该程序应该使用COSMIC编译器编译以在STM8控制器上运行。

At the beginning of the program, there are a couple of xref and xdef and then comes a .dcall statement or command. 在程序开始时,有一些xrefxdef ,然后是.dcall语句或命令。 Here it is: 这里是:

.dcall "2,0,__checksum16"

I searched the compiler's manual, the controller's programming manual and the internet in general but couldn't find what does this line mean. 我搜索了编译器的手册,控制器的编程手册和一般的互联网,但找不到这条线的含义。

Could someone please explain what does it mean and what are these comma-seperated entries mean? 有人可以解释这是什么意思,这些逗号分隔的条目是什么意思?

It is an assembler directive marking the entry point, symbol name and stack usage of a function. 它是一个汇编程序指令,用于标记函数的入口点,符号名称和堆栈使用情况。

According to this : 根据这个

[...] the first integer is the stack space used by the call instruction plus any automatic storage used by the function. [...]第一个整数是调用指令使用的堆栈空间加上函数使用的任何自动存储。 The second integer is the number of bytes stacked by the caller. 第二个整数是调用者堆叠的字节数。

I suggest that given its name and function that it causes debug information to be inserted into the object file for use by the ZAP symbolic debugger. 我建议给它的名称和功能,它会导致调试信息插入到目标文件中供ZAP符号调试器使用。 I am not familiar with the Cosmic tool chain, but it is also possibly used to perform stack depth analysis within the call graph by the linker. 我不熟悉Cosmic工具链,但它也可能用于通过链接器在调用图中执行堆栈深度分析。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM