GCC asm函数带有“heapend”汇编代码

时间:2011-01-21 04:50:19

标签: c assembly

正如标题所述,关于汇编代码heapend,当我链接我的程序时,我得到一个“未定义的引用”。但是heapend是一个有效的汇编代码,我收到错误消息的原因是什么。顺便说一句,我正在使用gcc。

asm( "heapend" )

顺便说一句,我想计算程序使用堆的大小。例如,

unsigned int heapsize = asm( /*address of end of the head*/ ) - asm( /*address of end of app*/ );

请注意,asm的功能应该返回地址。

请建议。

非常感谢。

1 个答案:

答案 0 :(得分:0)

无法在asm中表达部分指令。你必须用C完全写出来,比如:

extern char heapstart;
extern char heapend;
unsigned int heapsize = &heapend - &heapstart;

或在装配中完成:

mov [heapsize],heapend-heapstart