Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2012, 11:09   #1
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию чтение машинных команд

Добрый день.
есть команда: E80400
HIEW прочитывает ее как call 000000007
как раз по адресу 000000007 начинается вызываемая процедура
код e8 - call, но как правильно расписать следующие байты команды так чтобы получить необходимы адрес перехода?
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 10.09.2012, 12:26   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

это относительный переход.

так понимаю речь о ДОСе, в мане такая вот строчка идет:
Цитата:
tempEIP ← (EIP + DEST) AND 0000FFFFH; (* DEST is rel16 *)
ну а далее проверка, но она нас не волнует, помещение в стек текущего значения IP, ну и в итоге присваивание IP(EIP) tempEIP.
два след байта это тот самый DEST, то есть смещение.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.09.2012, 20:21   #3
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

спасибо, возник вопрос еще по 2 командам:
1. mov es:[0040h],al hiew показывает 26A24000
26 префикс замены сегмента
A2 получаем так как код A0dw, d=1 w=0, но как тогда быть с регистром al? Объясните как мы получаем такой код

2. cmp dword ptr arr[ebx+esi*2], edx код который у меня получился: 666739949E0C00
условие: массив arr здесь и далее имеет смещение 000С
Правильно ли получила код?
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Повторение команд Mihanches Общие вопросы Delphi 5 07.10.2010 14:12
помогите составить программу на ассемблере и в машинных кодах iLiKETREES Помощь студентам 2 15.12.2009 18:33
реализация команд с помощью набора других команд zhenyaa Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 08.11.2009 21:37
Чтение, чтение и еще раз чтение Alex Cones Общие вопросы Delphi 3 07.06.2009 15:28
Выполнение команд Vovilnik Свободное общение 14 06.05.2009 19:22