bx
和bp
in assembly有什么区别?这里的例子:
mov bx, 1h
mov bp, 1h
它们是否引用了相同的内存?ss
和一样sp
吗?
在x86
寄存器bx
和bp
完全无关。他们唯一的共同点就是这个词base
。
bx
(基索引)是一个通用寄存器(如 ax、cx 和 dx),通常用作指向数据的指针(用于数组等)bp
(基指针)通常用于指向堆栈中的某个位置(例如保存当前堆栈帧的地址)再次,ss
并且sp
也不同。
ss
(stack segment)是一个段寄存器(如 cs、ds 和 es)。它保存堆栈使用的段。sp
(栈指针)指向栈顶BP 寄存器主要有助于引用传递给子程序的参数变量。SS 寄存器中的地址与 BP 中的偏移量结合得到参数的位置。BP 也可以与 DI 和 SI 结合作为基址寄存器进行特殊寻址。
BX:用于索引和间接寻址