栈的基本介绍

1、栈的定义

:是一种运算受限的线性表,只允许其在一端进行插入和删除操作。

栈顶:指栈允许进行插入和删除的一端。

栈底:不允许进行插入和删除的一端。

空栈:栈中元素为零。

栈具有先进后出,后进先出的特点,简称为LIFO结构(Last in first out)

(图片来自维基百科)

注意:程序的栈是从进程地址空间的高地址向低地址增长的

2、寄存器

32 位和 64 位程序的简单区别

  • x86
    • 函数参数函数返回地址的上方
  • x64
    • System V AMD64 ABI (Linux、FreeBSD、macOS 等采用) 中前六个整型或指针参数依次保存在 RDI, RSI, RDX, RCX, R8 和 R9 寄存器中,如果还有更多的参数的话才会保存在栈上。
    • 内存地址不能大于 0x00007FFFFFFFFFFF,6 个字节长度,否则会抛出异常。
posted @ 2023-03-23 18:41  zzwwwe  阅读(298)  评论(0)    收藏  举报