Забил данные в конце проги у места их использования для наглядности.Потом потребовалось инвокнуть MessageBox с ними в середине проги. И как учил дядька Iczelion во 2-ом туториале передаю их по offset а не addr. код: invoke MessageBox, NULL, offset str3, offset str4 , MB_OK ......... ......... jmp @f str3 db "one",0 str4 db "Warning",0 @@: MASM32 это почему-то не берёт... Как поступать? И как же Iczelion?
Вот в таком варианте это будет работать: mov eax,offset MsgBoxText lea ebx, MsgCaption invoke MessageBox, NULL,eax, ebx, MB_OK ........ ........ jmp @f MsgCaption db "Iczelion's tutorial no.2",0 MsgBoxText db "Win32 Assembly is Great!",0 @@:
Видимо масм обрабатывает addr до компиляции а offset после. Следовательно если метка стоит далее, то на момент обработки строки с addr масм не знает точный адрес метки.