第1个回答 2020-01-14
指针寄存器
32位cpu有2个32位通用寄存器ebp和esp。其低16位对应先前cpu中的sbp和sp,对低16位数据的存取,不影响高16位的数据。
寄存器ebp、esp、bp和sp称为指针寄存器(pointer
register),主要用于存放堆栈内存储单元的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。
指针寄存器不可分割成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。
它们主要用于访问堆栈内的存储单元,并且规定:
bp为基指针(base
pointer)寄存器,用它可直接存取堆栈中的数据;
sp为堆栈指针(stack
pointer)寄存器,用它只可访问栈顶。