尝试使用基索引表达式在 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 位实模式下?