Подобная херня была давным-давно в 3-ем борланде вроде бы:-) Тоже думал, что комилятор дурак. Оказалось - я. :-) А всего-то в scanf написал %X вместо %x .Думал, по аналогии с printf, ну какая хер принципиальная разница - X или x.? Оказалось - есть разница. X - большому требовался указтель на 32-х разрядную переменную, а x- маленькому - на 16-ти разрядную. У меня был естественно на 16-ти. А дальше все просто - что-то поправлю где-то, в совершенно левом месте, линкер разместит эту переменную в безобидном месте - и все пофигу, все проходит. А в следующий раз разместит ее в обидном месте - и привет при записи 32-х разрядного числа в нее портится что-то другое и все идет раком:-) Такой вот пример влияния упомянутого DASM-ом data alligment, случившейся из-за нежелания тщательно изучать матчасть:-))