ベース インデックス式を使用して 16 ビット リアル モードでメモリを操作しようとすると、コンパイル エラーが発生します。
movw $0xd000, -2(%sp)
movw $0, -4(%sp)
movw $1, -6(%sp)
でコンパイル
gcc -c -Wa,--32 $(DIR_BS_SRC)/mbr.S -o $(DIR_BS_SRC)/mbr.o
ld -nostdlib --oformat binary --Ttext 0x7c00 $(DIR_BS_SRC)/mbr.o -o $(DIR_B$
次のエラーが発生します。
bootsector/src/mbr.S:20: Error: `-2(%sp)' is not a valid base/index expression
bootsector/src/mbr.S:21: Error: `-4(%sp)' is not a valid base/index expression
bootsector/src/mbr.S:22: Error: `-6(%sp)' is not a valid base/index expression
16 ビット リアル モードでも、これは有効な構文だと思いましたか?