Пишу программу в CodeVisionAVR C (1.24.7f)
Отлаживаюсь в Proteus (6.9SP5)
Объявляю переменные (unsigned char One, Two, Three, SMask, SData, CMask
Далее - элементарные действия (см. верхнее окошко Source codes на рисунке).
Смотрю окно переменных. Вижу странное - часть переменных недоступна для просмотра (см. окошко Variables).
Задумываюсь. Включаю в окне исходного текста ассемблерные строки (см. нижнее Source codes на рисунке; рядом с ним, на всякий случай, прилепляю окошко CPU registers).
Как говорится, легко видеть, что в окошке Variables мне не доступны переменные, которые хранятся в регистрах, и доступны те, которые лежат в памяти.
Вопрос 1 (просто интересно): почему транслятор CodeVisionAVR разложил переменные так странно? Часть в регистры, часть - в память?
Вопрос 2 (очень нужно): как заставить CodeVisionAVR положить все (или, по крайней мере, нужные мне переменные именно в память, чтобы их можно было просматривать как Variables)?
-- Прилагается рисунок: --