Вы забыли пробел в section.data
(и .text
), поэтому по умолчанию все перешло в раздел .text
только для чтения.
section.data
анализируется как метка, например foo.bar:
будет , а не директива section
. Двоеточие в конце метки является необязательным, если имя метки также не является допустимой инструкцией поместить ваш код в .data
, который связан с неисполняемыми страницами памяти. В этом случае вы бы столкнулись с ошибкой при получении кода из первой инструкции!
Вы должны были получить предупреждение от NASM, например:
warning: label alone on a line without a colon might be in error [-w+orphan-labels]
Если ваш NASM не сделал ' t предупреждение, используйте более новую версию, где она включена по умолчанию,
или запустите NASM с -Worphan-labels
, чтобы включить это полезное предупреждение.