Поскольку директива .const
MASM обозначает сегмент только для чтения , вы должны использовать эквивалент NASM section .rdata
1 , который создает сегмент / секцию, которые доступны для чтения, но не для записи.
Вы можете поместить DWORD где угодно, используя директиву DD
; см. Раздел 3.2.1 руководства.
Окончательный результат может выглядеть следующим образом:
section .rdata
const_array: dd 0, 1, 1, 2, 3, 5, 8, 13, 21
A :
после имен меток всегда рекомендуется в NASM .
Когда первый токен в строке не распознается как инструкция mnemoni c NASM будет считать, что это метка. Но это хорошая привычка всегда использовать :
, чтобы сделать это однозначным.
Сноска 1:
Windows использует .rdata
. Некоторые другие ОС, включая Linux, используют section .rodata
для неисполняемых данных только для чтения.