Ловлю ошибку при многократной инициалицации вложенной структуры. Это описание структур: Код (ASM): ;-------------- a_record -------------------------------- a_record struct a_n db ? a_v db ? a_p db ? a_i db ? a_record ends ;-------------- b_record -------------------------------- b_record struct b_b dd 8 dup(?) b_s a_record 32*8 dup(<>) b_record ends А вот тут ошибка: Код (ASM): b_record 32 dup(<>) ;error A2177: nested structure improperly initialized Пробовал использовать union в «b_record», но всё равно та-же ошибка. Неужели я что-то очивидное упустил?
Все правильно, b_record ты уже описал как структуру и тут же пытаешься ее сделать переменной, надо так: peremennaya b_record 32 dup (<>) или peremennaya db 32*sizeof b_record
Оба варианта: Код (ASM): peremennaya b_record 32 dup (<>) Код (ASM): peremennaya db 32*sizeof b_record Не работают (ml.exe 8.0.50727.762) Нашел идентичный вопрос на форуме масма: http://masm32.com/board/index.php?PHPSESSID=43c7a47a7d9b8d8274e1c1f09746ac94&topic=4167.0 Так там решением стало ещё одно вложение: Код (ASM): b_p struct b_record 32 dup(<>) b_p ends ;... b_p <> Похоже это ошибка обработки «dup» самим компилятором.
Я использую ml 6.14.8444, первый вариант компилируется без проблем, во втором я сделал ошибку, правильно так: peremennaya db (32*sizeof b_record) dup (?)