[an error occurred while processing this directive]
|
Но компилятор не человек. Если я объявляю переменную как глобальную регистровую (__regvar), а разместить ее в регистрах лучше, чем в памяти, то когда я пишу выражение Reg = 0x12; компилятор мне и выдает то, что я привел. Естественно, по-другому он не может. В других случаях он использует старшую половину регистров.
Но у компилятора есть одно преимущество. Принятые соглашения (в том числе и по использованию регистров) он выполняет обязательно, чего о программисте-ЧЕЛОВЕКЕ не скажешь. Человек невольно пытается соптимизировать код и нарушает иногда им же принятые соглашения. Но в одних случаях это происходи без проблем, в других случаях подобные нарушения чреваты багами в программах, которые приходится искать, и иногда искать долго.
E-mail: info@telesys.ru