宏与程序集中的过程

时间:2014-06-02 12:40:51

标签: assembly macros

我现在正在学习如何在汇编语言中使用宏。 我知道宏比程序更快,因为没有昂贵的跳转,只复制行。

但我不明白为什么宏比程序占用更多内存。

4 个答案:

答案 0 :(得分:4)

宏在某些条件下只占用更多内存:

  • 宏不止一次使用
  • 扩展的宏占用的内存比调用过程的代码更多

如果以上情况属实,那么(足够大的)宏体就会被复制(不止一次),因此它需要的内存多于程序,而程序的主体只生成一次。

答案 1 :(得分:1)

使用宏,相同的代码在内存中的多个位置重复,而不是重复使用相同的过程。

答案 2 :(得分:1)

它们会占用更多内存,因为它们会复制行 - 因此每次使用宏时都会复制代码,从而增加了可执行文件的大小。

答案 3 :(得分:0)

宏占用更多内存,因为它在我们调用它时复制了行,但它的编码完成了一次与执行相比,程序编码只生成一次,这就是为什么宏比程序更快