正如标题所述,关于汇编代码heapend,当我链接我的程序时,我得到一个“未定义的引用”。但是heapend是一个有效的汇编代码,我收到错误消息的原因是什么。顺便说一句,我正在使用gcc。
asm( "heapend" )
顺便说一句,我想计算程序使用堆的大小。例如,
unsigned int heapsize = asm( /*address of end of the head*/ ) - asm( /*address of end of app*/ );
请注意,asm的功能应该返回地址。
请建议。
非常感谢。
答案 0 :(得分:0)
无法在asm中表达部分指令。你必须用C完全写出来,比如:
extern char heapstart;
extern char heapend;
unsigned int heapsize = &heapend - &heapstart;
或在装配中完成:
mov [heapsize],heapend-heapstart