Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Assembler

Страница: 1 |

 

  Вопрос: ПОДСКАЖИТЕ ПОЖАЛУЙСТА Добавлено: 15.11.09 19:38  

Автор вопроса:  aleksei
{
004135E0 push ebp ;помещаем в стек регистр ebp ЗАЧЕМ???
004135E1 mov ebp,esp ;переслать содержимое esp в регистр ebp ПОЧЕМУ???
004135E3 sub esp,0F0h ;целочисленное вычитание (0F0h - esp)
004135E9 push ebx ;помещаем в стек регистр ebx
004135EA push esi ; помещаем в стек регистр esi
004135EB push edi ; помещаем в стек регистр edi
004135EC lea edi,[ebp-0F0h] ;получение эффективного адреса (смещения) источника (ebp-0F0h)
004135F2 mov ecx,3Ch ;переслать содержимое 3Ch в регистр ecx
004135F7 mov eax,0CCCCCCCCh ;переслать содержимое 0CCCCCCCCh в регистр eax
004135FC rep stos dword ptr es:[edi] ;указание условного и безусловного повторения
                                                                         ;следующей за данной командой цепочечной операции

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 VerhoLom



Вопросов: 20
Ответов: 285
 Профиль | | #1 Добавлено: 16.11.09 14:14
04135E0 push ebp ;помещаем в стек регистр ebp ЗАЧЕМ???
004135E1 mov ebp,esp ;переслать содержимое esp в регистр ebp ПОЧЕМУ???
004135E3 sub esp,0F0h ;целочисленное вычитание (0F0h - esp)

Это стандартный пролог начала функции. Первые 2 строки нужны для того, чтобы сохранить состояние стека на входе в функцию. push ebp сохраняет в стеке значение базы стека, а mov ebp,esp сохраняет в ebp значение верхушки стека. Стек растет вниз (сверху). Эта операция нужна для того, чтобы мы могли выделить в стеке место под наши внутренние переменные (а именно там они хранятся), а потом вернуть все обратно, как было до вызова (это делает команда mov esp,ebp/pop ebp в самом конце).

sub esp,0F0h - выделение места в стеке под какие-то переменные. Тут из esp вычитается F0 байт. Так мы выделяем в стеке место...

push ebx ;помещаем в стек регистр ebx
004135EA push esi ; помещаем в стек регистр esi
004135EB push edi ; помещаем в стек регистр edi
Просто сохраняем регистры в стеке.

mov ecx,3Ch
Сколько раз крутить цикл...

mov eax,0CCCCCCCCh
что сохранять в память

rep stos dword ptr es:[edi]
собственно цикл...

Ответить

Номер ответа: 2
Автор ответа:
 aleksei



Вопросов: 2
Ответов: 2
 Профиль | | #2 Добавлено: 16.11.09 14:26
 Vbman, спасибо тебе огромное!!! Второй раз выручаешь!!!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам