80x86 堆栈与过程调用详解
1. 80x86 堆栈
在编程中,堆栈是一个重要的概念,80x86 架构的堆栈也有其独特的使用方式和特点。
1.1 堆栈分配
可以使用如下代码来分配堆栈:
.STACK 4096
这个 .STACK 指令告诉汇编器预留 4096 字节的未初始化存储空间。操作系统会将 ESP(堆栈指针)初始化为堆栈 4096 字节之上第一个字节的地址。堆栈的大小可以根据程序的预期使用情况进行调整。
1.2 压栈(Push)和出栈(Pop)操作
堆栈最常用的操作是压栈和出栈。这些操作可以在 call 和 return 指令执行时自动完成,也可以通过 push 和 pop 指令手动完成。
- Push 指令
- 语法 :
push source - 源操作数类型 :可以是 16 位寄存器、32 位寄存器、段寄存器、内存中的字、内存中的双字、立即字节、立即字或立即双字。唯一的字节大小操作数是立即数,对于立即字节操作数,会将其符号扩展为双字后压入堆栈。
- 操作过程 :
超级会员免费看
订阅专栏 解锁全文
1

被折叠的 条评论
为什么被折叠?



