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

はい、これにより、0x500 から 0x900 の間に他に何もロードしない限り、1024 バイトのスタック スペースが提供されます。また、はい、スタックを上書きせずにデータを 0x900 に保存しても安全です。sp覚えておくべきことの 1 つは、スタックとデータ セグメントが異なる場合、または以外のレジスタを使用してスタック上のデータにアクセスする場合は、セグメント プレフィックスを使用する必要があることですbp

于 2011-07-10T05:02:17.547 に答える