Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ESP, EBP, EIP, ESI 
:(
    Опции темы
XSInet
  Дата 11.1.2006, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 4.1.2006

Репутация: нет
Всего: нет



Пожалуйста разъясните поподробнее об этих регистрах. Их функции, работа с ними. Привидите пару примеров пожалуйста. Только поподробнее ! smile smile
PM MAIL   Вверх
XSInet
Дата 12.1.2006, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 4.1.2006

Репутация: нет
Всего: нет



Разве никто не знает ? rsm ответь пожалуйста ! Ты мне уже три раза помог, за что я тебе очень благодарен !
PM MAIL   Вверх
rsm
Дата 12.1.2006, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: 3
Всего: 62



Цитата(XSInet @ 12.1.2006, 13:53 Найти цитируемый пост)
rsm ответь пожалуйста !

Да тута я, здеся.

ESP - расширенный регистр указателя стека. С помощью этого регистра происходит обращение к данным, хранящимся в стеке. Пример использования:
Код

      mov eax,[esp+0C]


EBP - расширенный регистр указателя стекового фрейма. Обычно используется при вызове функций для указания на аргументы функции и для ссылок на локальные переменные. Пример использования:
Код

proc DialogProc ; HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam
      mov eax,[ebp+08] ; mov eax,hDlg
      mov eax,[ebp+0C] ; mov eax,uMsg
      mov eax,[ebp+10] ; mov eax,wParam
      mov eax,[ebp+14] ; mov eax,lParam
;...
endp


EIP - регистр указателя команд. Содержит адрес команды, которая будет выполнена следом за текущей. Напрямую используется довольно редко. Один из вариантов использования - при работе с функцими DebugApi для управления отлаживаемой программой. Или вот еще пример самой маленькой программы (2 байта), намертво вешающей Win9х:
Код

      jmp eip ; бесконечный цикл


ESI - расширенный индексный регистр источника. Используется для быстрой пересылки данных из одной области памяти в другую. Пример использования:
Код

      array rb 4
      ; ...
      mov esi,array
      mov al,byte [esi]
      mov ax,word [esi]
      mov [esi],eax


Это сообщение отредактировал(а) rsm - 12.1.2006, 20:23
PM MAIL   Вверх
XSInet
Дата 13.1.2006, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 4.1.2006

Репутация: нет
Всего: нет



Чё та плохо понял. Объсни пожалуйста "на пальцах".
Например:
Код

array1  db  7
array2  db  6

push array1
push array2


как можно поместить в EAX и EBX из стека array1 и array2, кроме pop eax, pop ebx ???
Так же что делает команда mov ESI, 10 ? Плохо прям понял как то.
PM MAIL   Вверх
rsm
Дата 14.1.2006, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: 3
Всего: 62



Цитата(XSInet @ 13.1.2006, 18:05 Найти цитируемый пост)
как можно поместить в EAX и EBX из стека array1 и array2

Не понял вопроса - у тебя array1 & 2 это переменные размером 1 байт. Причем тут стек?
PM MAIL   Вверх
XSInet
Дата 14.1.2006, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 4.1.2006

Репутация: нет
Всего: нет



Просто хочу на конкретных примерах разобраться. Просто чтоб мне по понятнее было
PM MAIL   Вверх
rsm
Дата 14.1.2006, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: 3
Всего: 62



ОК, вот три программы-примера.
Код

        ; определение длины строки

         string db 'Some string...',0
         ; ...         
         
         mov esi,string
         xor ecx,ecx
_next:
         lodsb
         inc ecx
         or al,al
         jnz _next
         dec ecx
         xchg eax,ecx
         ; в eax - длина строки

Код

        ; то же, как это делает виндовая функция lstrlenA

         string db 'Some string...',0
         ; ...         
         
         mov edi,string
         or ecx,-1
         xor al,al
         repne scasb
         not ecx
         dec ecx
         xchg eax,ecx
         ; в eax - длина строки

Код

         ; простейшее шифрование строки

         string db 'Some string...',0
         enc_str rb 10h
         ; ...         
         
         mov esi,string
         mov edi,enc_str
_next:
         lodsb
         or al,al
         jz _exit
         xor al,78h
         stosb
         jmp _next
_exit:
         stosb

PM MAIL   Вверх
XSInet
Дата 14.1.2006, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 4.1.2006

Репутация: нет
Всего: нет



Спасибо, теперь буду разбираться
PM MAIL   Вверх
Tyler Durden
Дата 31.1.2006, 01:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 12.1.2005
Где: Одесса

Репутация: нет
Всего: 2



Цитата
jmp eip

OMFG ? smile Как это ты eip так лихо прописал ? smile Так не бывает к счастью/сожелению smile
PM MAIL WWW ICQ   Вверх
rsm
Дата 31.1.2006, 06:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: 3
Всего: 62



Цитата(Tyler Durden @ 31.1.2006, 03:39 Найти цитируемый пост)
Как это ты eip так лихо прописал ?

А что не нравится?

PM MAIL   Вверх
Tyler Durden
Дата 31.1.2006, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 12.1.2005
Где: Одесса

Репутация: нет
Всего: 2



Такого регистра не существует, во всяком случае в опкодах ia32
PM MAIL WWW ICQ   Вверх
Romikgy
Дата 31.1.2006, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: нет
Всего: 146



Цитата(Tyler Durden @ 31.1.2006, 09:13 Найти цитируемый пост)

Такого регистра не существует

Есть, есть... smile


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0831 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.