ラベル アドレス/オフセットの最上位ビットを設定する必要があります。
私は試した:
test.nasm:
BITS 32
dw mylabel | 0x8000
mylabel:
dd 0
しかし、これを組み立てようとすると、次のようになります。
nasm -f bin test.nasm
test.nasm:3: error: `|' operator may only be applied to scalar values
mylabelがスカラー値として認識されないのはなぜですか? ラベルは、アセンブラによってアドレス (スカラー値) に置き換えられるだけだと思いました。
問題がある場合は、nasm v 2.09.04 を使用しています。
助けてくれてありがとう。
編集: |の代わりに+ を使用できました。. ビット単位の演算子がラベルで機能しないようです。どう思いますか、これは意図的なものですか、それともバグですか?