Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Окно "Регистры " доступно только в том случае, если отладка на уровне адресов включена в диалоговом окне "Параметры ", узел отладки .
Регистры — это специальные расположения в процессоре (ЦП), которые используются для хранения небольших фрагментов данных, над которыми активно работает процессор. Компиляция или интерпретация исходного кода создает инструкции, которые по мере необходимости перемещают данные из памяти в регистры и обратно. Доступ к данным в регистрах очень быстро по сравнению с доступом к данным в памяти, поэтому код, позволяющий обработчику хранить данные в регистре и получать к нему доступ многократно, как правило, быстрее, чем код, который требует от процессора постоянно загружать и выгрузить регистры. Чтобы упростить хранение данных в регистрах компилятором и выполнить другие оптимизации, следует избегать использования глобальных переменных и использовать локальные переменные как можно больше. Код, написанный таким образом, считается, что имеет хорошую локальность ссылок. На некоторых языках, таких как C/C++, программист может объявить регистровую переменную, которая сообщает компилятору, чтобы попытаться сохранить переменную в регистре в любое время. Дополнительные сведения см. в разделе "Регистрация ключевого слова".
Регистры можно разделить на два типа: общее назначение и специальное назначение. Регистры общего назначения содержат данные для общих операций, таких как добавление двух чисел вместе или ссылка на элемент в массиве. Регистры специального назначения имеют конкретные цели и специализированное значение. Хорошим примером является регистр указателя стека, который процессор использует для отслеживания стека вызовов программы. Как программист, вы, вероятно, не будете управлять указателем стека напрямую. Однако важно правильное функционирование программы, так как без указателя стека процессор не знал, куда вернуться в конце вызова функции.
Большинство регистров общего назначения содержат только один элемент данных. Например, одно целое число, число с плавающей запятой или элемент массива. Некоторые новые процессоры имеют более крупные регистры, называемые векторными регистрами, которые могут содержать небольшой массив данных. Так как они содержат большое количество данных, векторные регистры позволяют выполнять операции с массивами очень быстро. Векторные регистры впервые использовались для дорогостоящих высокопроизводительных суперкомпьютеров, но теперь становятся доступными на микропроцессорах, где они используются для больших преимуществ в интенсивных графических операциях.
Процессор обычно имеет два набора регистров общего назначения, один оптимизирован для операций с плавающей запятой и другой для целых операций. Неудивительно, что они называются регистрами с плавающей запятой и целыми числами.
Управляемый код компилируется во время выполнения в машинный код, который обращается к физическим регистрам микропроцессора. В окне "Регистры " отображаются эти физические регистры для среды CLR или машинного кода. В окне registers не отображаются сведения о регистрации для скрипта или приложения SQL, так как скрипты и SQL являются языками, которые не поддерживают концепцию регистров.
Дополнительные сведения о отображении окна "Регистрация" см. в разделе "Использование окна регистрации".
При просмотре окна "Регистрация" вы увидите такие записи, как EAX = 003110D8.
Символ слева от знака — это имя регистра = , EAXв данном случае. Число справа от = знака представляет содержимое регистра.
Окно "Регистры" позволяет выполнять больше действий, чем просто просматривать содержимое регистра. Когда вы находитесь в режиме останова в машинном коде, вы можете щелкнуть по содержимому регистра и изменить его значение. Это не то, что вы должны делать случайным образом. Если вы не понимаете регистр, который вы редактируете, и содержащиеся в нем данные, результат небрежного редактирования, скорее всего, будет сбоем программы или другим нежелательным следствием. К сожалению, подробное описание наборов регистров процессоров Intel и совместимых с ними процессоров выходит далеко за рамки этого краткого введения.
Регистрация групп
Чтобы уменьшить беспорядок, окно "Регистры " упорядочивает регистры в группах. Если щелкнуть правой кнопкой мыши окно "Регистры ", вы увидите контекстное меню, содержащее список групп, которые можно отобразить или скрыть по мере необходимости.
Регистрация флагов
Для процессоров Intel x86 в окне "Регистры " могут отображаться следующие флаги. Во время сеанса отладки можно также изменить эти флаги.
| Flag | Задать значение |
|---|---|
| Overflow | OV = 1 |
| Направление | UP = 1 |
| Прерывать | EI = 1 |
| Подписание | PL = 1 |
| Нуль | ZR = 1 |
| Вспомогательный перенос | AC = 1 |
| Parity | PE = 1 |
| Нести | CY = 1 |