![]() |
|
![]() ![]() ![]() |
|
zMan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 22.6.2006 Где: Новосибирск Репутация: нет Всего: нет |
Привет всем!
Люди, кто знает алгоритм, по которому любой компилятор создаёт адрес после кода вызова процедуры, "прыжка"? На асме всё вроде просто:
А как глянул дизассемблированный код - без литра (а лучше двух) не разберёшься!! ![]() [offset1] E8DBFFFFFF - call proc [offset2] EBF9 - jmp @label [offset3] 74F7 - je @label plz, помогите!!! |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 4 Всего: 158 |
непосредственное значение в кодах инструкций тебя интересует? - так там просто знаковое смещение относительно текущего адреса. например, адрес вызова в первой строке твоего примера будет:
offset1+5(длина инструкции)+0ffffffdb(-25) |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: нет Всего: 146 |
Я не совсем понял вопрос , адресс вызова может быть или абсолютный или относительный судя по твоей мессаге у тя оносительный адресс и отрицательный -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: нет Всего: 149 |
![]() ![]() Не мог не запостить ![]() |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
Программировать в машинных кодах охота? топай на сайт Интела, качай IA-32 Intel® Architecture Software Developer's Manual (5 частей, 14 мегабайт). И изучай.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
zMan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 22.6.2006 Где: Новосибирск Репутация: нет Всего: нет |
Пасибочки! А про переходы (условный/безусловный)? |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: нет Всего: 146 |
аналогично
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
BUGOR |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 12.3.2006 Репутация: нет Всего: 16 |
zMan, всё на самом деле просто:
[offset3] 74F7 - je @label это так называемый short прыжок, или короткий прыжок, который осуществялется если адрес перехода находится в пределах -128 +128 байт. 74 - опкод команды je, а F7 - это значит переход на (not F7)-1 байт "вверх", если бы второй байт опкода команды был 7F или меньше, то прыжок бы осуществлялся на значение второго опкода(0-7F) + 2 байта(размер команды) "вниз". Это сообщение отредактировал(а) BUGOR - 20.8.2006, 11:14 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm: Общие вопросы" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |