Отладка приложений



              

Регистры


Именно через регистры передается приложению каждый бит данных, который оно обрабатывает, и знание роли каждого регистра поможет вам распознать неудачный участок кода. CPU x86 имеют восемь регистров общего назначения (ЕАХ, ЕВХ, ЕСХ, EDX, ESI, EDI, ESP и ЕВР), шесть сегментных регистров (CS, DS, ES, SS, FS и GS), указатель инструкций (команд) EIP и регистр флагов (EFLAGS). Есть и другие регистры, такие как регистры отладки и управляющие машинные регистры, но это регистры специального назначения, и вы не встретитесь с ними при нормальной отладке в режиме пользователя. Все регистры общего назначения, перечисленные в табл. 6.1, являются 32-разрядными. Заметьте, что некоторые из них допускают мнемонические обозначения для доступа к различным частям полного 32-разрядного регистра. Единственный сегментный регистр, представляющий интерес для данной главы, — это регистр FS, который содержит блок информации потока (TIB), содержащий описание текущего выполняемого потока. Используются и другие сегментные регистры, но операционная система конфигурирует их таким образом, что они оказываются прозрачными по отношению к нормальной операции. Указатель инструкции содержит адрес текущей выполняющийся инструкции.

Таблица 6.1. Регистры общего назначения

32-разрядный регистр

16-разрядный доступ

Доступ к младшему байту (биты 0-7)

Доступ к старшему байту (биты 8-1 5)

Специфика использования

ЕАХ

АХ

AL

АН

Здесь хранятся возвращаемые значения целых функций

ЕВХ

ВХ

BL

ВН

Здесь хранится базовый адрес объекта в памяти

ЕСХ

СХ

CL

СН

Эти регистры используются счетчиками инструкций циклов

EDX

DX

DL

DH

Здесь хранятся 32 старших бита 64-битных значений

ESI

SI

Здесь хранится исходный адрес инструкций перемещения или сравнения в памяти

EDI

DI

Здесь хранится целевой адрес инструкций перемещения или сравнения в памяти

ESP

SP

Указатель стека. Этот регистр изменяется неявно при вызове функции, возврате из функции, отведении места в стеке для локальных переменных и очистке стека




Содержание  Назад  Вперед