堆栈里有栈吗

今天在复习汇编的时候,对堆栈产生了一点疑问。跟GPT聊了几句之后,发现之前认知的一些误区。

  • 计算机中的堆实际上不是数据结构中的堆。它的实现方法在高中技术考试上碰到过,就是将所有空闲的空间用链表连接起来。要使用空间时,遍历链表,并找到合适大小的空间释放掉。
  • 而汇编中提到的堆栈实际上并不包含堆。它叫堆栈是翻译的问题,因为栈的实现就像是把一堆数据叠在一起。堆栈的英文实际上就是(stack)

DI的默认寄存器,正常状况下是DS,特殊情况(MOVS)是ES