Собственно столкнулась с проблемой: proc Bla local Threads dd 255 (0) locals ThreadsB dd 255 (0) local ret endp fasm решительно отказывается собирать, ругаяюсь на invalid value, если заменить все (0) на (?), то все просто замечательно. Нашла пример в документации к фасму: For example file 'data.bin' will include the whole file as binary data and file 'data.bin':10h,4 will include only four bytes starting at offset 10h. Это оно как тогда в случаи массива заполненного нулями будет смотреться?
Локальные переменные создаются в стеке. Они всегда НЕ инициализированы. Если нужны 0 в локальном массиве - то явно после этого их туда заносишь. через stosd, к примеру
Что за фигня. Может я и не понял чего, но local Threads dd 255 dup (0) компилится и фасм вставляет код, кот. будет правда выглядеть в данном случае весьма тупо, но работать будет
А не поделитесь опытом, как в стеке можно что-либо инициализировать? Если место под локальную переменную выделяется только после директивы LOCAL ??? Где физически будет храниться эта инициализированная переменная до этого? А если где-то и будет, то какой смысл ее объявлять как локал? Глупость сказал, не ? [add] Я про масм, но думаю фасм где-то рядом.