Загальні відомості про налагодження вікно регістрів
Регістри представляють собою спеціальні області, розташовані всередині ЦП, які використовуються для зберігання невеликих частин даних, з якими процесор активно працює. При компіляції або інтерпретації вихідного коду створюються інструкції, що переміщують при необхідності дані з пам'яті в регістри і назад. Доступ до даних, що зберігаються в регістрах, здійснюється значно швидше в порівнянні з доступом до даних, що зберігаються в пам'яті. Таким чином, код, що дозволяє процесору зберігати дані в регістрах і здійснювати до них багаторазовий доступ, має тенденцію до більш швидкого виконання, ніж код, що вимагає, щоб процесор постійно завантажував і розвантажував дані з регістра. Щоб компілятору було простіше зберігати дані в регістрах і виконувати інші види оптимізації, необхідно уникати використання глобальних змінних і, наскільки це можливо, покладатися на локальні змінні. Вважається, що код, написаний таким чином, має гарне розташування посилань. У деяких мовах програмування, наприклад C / C ++, програміст може оголошувати змінні регістра, які веліли компілятору по можливості весь час зберігати змінну в регістрі. Додаткові відомості див. У розділі Зареєстроване ключове слово.
Регістри діляться на два типи: регістри загального призначення і регістри спеціального призначення. Регістри загального призначення містять дані, використовувані для загальних операцій, таких як додавання двох чисел або вказівка на елемент масиву. Регістри спеціального призначення мають особливі цілі і значення. Хорошим прикладом є регістр покажчика стека, який використовується процесором для відстеження програмного стека викликів. Програміст, як правило, не працює з покажчиком стека безпосередньо. Однак він є дуже великою для правильного функціонування програми, так при відсутності покажчика стека процесор може знати, куди повертатися в кінці виклику функції.
Більшість регістрів загального призначення містять тільки один елемент даних. Наприклад одне ціле число, число з плаваючою комою або елемент масиву. Деякі нові процесори мають регістри більшого розміру, звані векторними, які можуть містити невеликий масив даних. Так як вони містять досить велику кількість даних, векторні регістри дозволяють дуже швидко виконувати операції, що викликають масиви. Векторні регістри вперше були використані в дорогих, високопродуктивних комп'ютерах, але в даний час стало можливим їх використання в мікропроцесорах, де вони надають значні переваги при виконанні інтенсивних графічних операцій.
Процесор, як правило, має два набори регістрів загального призначення. Один з них оптимізований для виконання операцій з плаваючою комою, а інший - для виконання операцій з цілими числами. Перші називаються регістрами з плаваючою комою, другі - цілими регістрами.
Керований код компілюється під час виконання в машинний код, який звертається до фізичних регістрів мікропроцесора. У вікні Регістри відображаються ці фізичні регістри для загальномовного середовища виконання і властивого даному об'єкту коду. У вікні Регістри не відображаються відомості про регістри для скрипта і додатки SQL, так як ці мови не підтримують концепцію регістрів.
У вікні Регістри можна побачити записи такого вигляду:
Символ, розташований зліва від знака рівності, означає ім'я регістру, в даному випадку - EAX. Число, розташоване праворуч від знака рівності, - вміст регістра.
Вікно Регістри дозволяє не тільки переглядати вміст регістра. У режимі призупинення в притаманному даному об'єкту коді можна клацнути мишею вміст регістра і змінити значення. Ці дії не можна виконувати випадковим чином. Якщо неясний сенс даних змінюваного регістра, в результаті неакуратне зміни може статися аварійне завершення програми або інші небажані наслідки. На жаль, докладний опис регістрів, використовуваних в різних процесорах Intel і процесорах, сумісних з Intel, лежить далеко за межами цього короткого вступу.
Щоб уникнути захаращення, у вікні Регістри регістри організовані за групами. При натисканні правою кнопкою у вікні Регістри відображається контекстне меню, що містить список груп, який можна відобразити або приховати.