Стандартная реализация ALIGN ЧИСЛО в MASM предполагает заполнение от метки ALIGN_ЧИСЛО до адреса кратного ЧИСЛО кодом 90h, а если требуется заполнение, например нулями? В теории это должно выглядеть вот так Код (Text): db ((-$) and 11b) dup (0); align 4 а на практике эта конструкция приводит к выдаче ошибки error A2026: constant expected Как правильно это выглядит на масм?
Чего-то меня сомнения гложут. Если align в секции данных, оно нулями и заполняло всегда. Если в коде - то естественно нопами. Как-то не заострял на этом внимания, но вроде бы так. И это меня устраивало на 100%
FatMoon не обращал внимание на align в секции данных, но у меня секция кода объединена с секцией данных и секцией импорта (вот такой я извращенец!), но всё-же, как написать рабочую конструкцию типа этой Код (Text): db ((-$) and 11b) dup (0) на масме без "error A2026: constant expected"?
ALIGN aligns ............................ ......................................... In a segment containing no instructions, the assembler pads each skipped byte with nulls (00h). In a code segment, the assembler inserts a no-operation sequence (not necessarily NOP instructions) to fill the gap.
Rockphorr спасибо, но, к сожалению, код вашего примера выдает следующие ошибки Код (Text): error A2006: undefined symbol a error A2026: constant expected конструкция s_d_f рабочая, вот ее "косметическая" доработка Код (Text): db ((start - $) and 511) dup(0CCh) Спасибо всем кто откликнулся!