我需要設置某個標籤地址/偏移的最高位。NASM - 用位標記擴展標籤
我想:
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。
在此先感謝您的幫助。
編輯: 我已經能夠使用+代替|。看起來好像按位運算符不適用於標籤。你認爲,這是故意還是錯誤?
dw應該存儲從文件開始處的mylabel標籤的偏移量(作爲16位值),但它必須用某個標誌進行擴展。我正在手動編寫win exe(PE)文件/映像的.reloc部分。 – masterxilo 2010-12-07 14:49:35