Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
А при чём тут JMP??? Ведь возврат берёться из стека. 20.10.01 13:38 Число просмотров: 898
Автор: DefengerRRRRRRR Статус: Незарегистрированный пользователь
|
> > . Почему это происходит? Кто знает? Ведь после нажатия > F11 > > софт айс вылетает после ret....следовательно > пребедущей > > командой должен быть CALL...... > > не всегда, не все функции вызываются callми, некоторые так > jmp ds: function_offset_from_import_section > > Именно через такую структуру и вызываются импортированные > функции. > > дельфи так любит делать. так что ты не пугайся и ломай > дальше:))) > > как я понимаю просиходит так: > > есть call abcd > ---------------->>>> сюда указ > стек > по адресу абсд : jmp ds:abcd_imported_offet > -------------------->>>>>>>>>> > ;>> а не сюда > > но адрес возврата установлен сразу после call, а не jmp > > соответственно, когда API функция закончит работу, она > перейдёт на след инструкцию после call >
Про эту констукцию я знаю. Вот и я к тому. CALL закладывает в стёк возврат на следующюю после него команду. Так почему после F11 возврат происходит на
jmp....
*jmp....
jmp....
ведь jmp ничего не делает со стёком. И F11 должен вернуть на команду слежующюю за CALL????
PS: Насколько я понимаю F11 останавливает после команды RET.
|
|
|