Можно ли заставить VC сохранять значения всех регистров в функции? если в начале и в конце поставить __asm{ pushad} __asm{popad} можно ли быть уверенным, что компилятор не напортачит со стеком?
Ну вообще-то работать с регистрами ТАК не советую. Безсмысленно, ИМХО, если функция не на асме и не naked. А уж к стеку это совершенно никакого отношения иметь не будет. И еще... КОМПИЛЕР со стеком ничего не портачит - это достаточно стабильная прога, даже не упомню, чтобы у меня компилер падал А если кто-то и портачит, то сама функция! В общем - код в студию, может поможем, чем сможем
Нельзя. pushad и popad можно ставить только в блоке: __asm { pushad ... popad } А елси писать так, как ты написал, то в 99% значения изменятся. Вообще компилятор активно использует стек. И никогда нельзя быть увереным, что в стеке в данный момент, кроме случая, когда пишешь в asm блоке
Поправлюсь, я имел ввиду не то, что компилятор использует стек, а то, что он генерирует код, который активно испоьлзует стек, и что невозможно сказать, куда в конкретной строке программы указывает указатель стека