Трябва да задам най-високия бит на някакъв адрес/отместване на етикет.
Опитах:
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, ако това има значение.
Благодаря предварително за всяка помощ.
РЕДАКТИРАНЕ: Успях да използвам + вместо |. Изглежда, че побитовите оператори не работят върху етикети. Как мислите, това нарочно ли е или е грешка?