3

我正在编写一个引导加载程序,并这样设置我的堆栈......

STACK_SEGMENT equ 0x0050
STACKP_OFFSET equ 0x03FF

mov ax, STACK_SEGMENT
mov ss, ax
mov sp, STACKP_OFFSET

我这样做是否分配了 1024 字节的堆栈空间?是否适合在 0x00900 加载其他内容?0x00900 应该在我的堆栈数据之后...

4

1 回答 1

1

是的,这将为您提供 1024 字节的堆栈空间,只要您没有加载 0x500 和 0x900 之间的任何其他内容。此外,是的,在不覆盖堆栈的情况下将数据存储在 0x900 是安全的。sp要记住的一件事是,如果堆栈和数据段不同,如果您想使用除or以外的任何寄存器访问堆栈上的数据,则需要使用段前缀bp

于 2011-07-10T05:02:17.547 回答