美文网首页
arm64汇编篇-04堆与栈的关系

arm64汇编篇-04堆与栈的关系

作者: ClementGu | 来源:发表于2018-05-24 17:09 被阅读20次

    栈:

    栈是一种具有特殊的访问方式的存储空间(后进先出, Last In Out Firt,LIFO)。

    堆:

    堆用于动态分配和释放程序所使用的对象.(这边不详细介绍堆,汇编中主要是看栈的运用)。

    地址读取:

    内存中内存地址的读取是从低地址向高地址读取的。

    栈与堆的关系:


    上面简单的画了一下堆栈的关系,Stack Overflow大家应该不是很陌生,在开发中遇到的很多刁钻的问题都可以在Stack Overflow中找到答案而其意义却是堆栈溢出。

    栈的内存开辟是从高地址往低地址段开辟,但是读取内存都是从低地址往高地址读取的,所以栈里面涉及到栈平衡和叶子函数调用的问题,在后续文章里会介绍。

    同时栈的开辟是通过移动sp来实现的,上一章介绍了sp寄存器是始终指向栈顶的,所以在叶子函数中可以不开辟栈来实现寄存器数据操作。

    相关文章

      网友评论

          本文标题:arm64汇编篇-04堆与栈的关系

          本文链接:https://www.haomeiwen.com/subject/plyrrftx.html