第6章子程序设计 6.1堆栈 6.2子程序 6.3 WindOws api
第6章 子程序设计 6.1 堆栈 6.2 子程序 6.3 Windows API
6.1堆栈 ■供程序使用的一块连续的内存空间; 用于保存和读取一些临时的数据 ■堆栈中的数据有以下几个特点: 临时性 ■快速性 动态扩展性
6.1 堆栈 ◼ 供程序使用的一块连续的内存空间; ◼ 用于保存和读取一些临时的数据 ◼ 堆栈中的数据有以下几个特点: ◼ 临时性 ◼ 快速性 ◼ 动态扩展性
6.1.1堆栈空间 相关的3个寄存器:SS,ESP和EBP 在 Windows用户模式下 SS段寄存器通常和DS,ES段寄存器相等 ESP寄存器中的内容作为堆栈的当前指针 EBP寄存器中的内容作为堆栈的“基准”指 针
6.1.1 堆栈空间 ◼ 相关的3个寄存器:SS,ESP和EBP ◼ 在Windows用户模式下 ◼ SS段寄存器通常和DS,ES段寄存器相等 ◼ ESP寄存器中的内容作为堆栈的当前指针。 ◼ EBP寄存器中的内容作为堆栈的“基准”指 针
6.1.2进栈和出栈指令 1.进栈指令PUSH 格式: PUSH SRC 功能:堆栈指针ESP减4,SRC保存在ESP指 向的堆栈单元中。 SRC可以是32位寄存器、内存操作数、立即 数或16位段寄存器
6.1.2 进栈和出栈指令 1.进栈指令PUSH 格式:PUSH SRC 功能:堆栈指针ESP减4,SRC保存在ESP指 向的堆栈单元中。 ◼ SRC可以是32位寄存器、内存操作数、立即 数或16位段寄存器
2.出栈指令POP 格式: POP DST 功能:从ESP指向的堆栈单元中取出数据送 到DST中,堆栈指针ESP加4。 ■DST是32位寄存器、内存操作数或16位段寄 存器 立即数不能作为DST
2.出栈指令POP 格式:POP DST 功能:从ESP指向的堆栈单元中取出数据送 到DST中,堆栈指针ESP加4。 ◼ DST是32位寄存器、内存操作数或16位段寄 存器。 ◼ 立即数不能作为DST