Страница: 1 | 2 |
Вопрос: [ASM] Куда под виндой запиисываются возвращаемые з
Добавлено: 14.09.08 06:05
Автор вопроса: Morpheus | Web-сайт:
Ответы
Всего ответов: 19
Номер ответа: 16
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #16
Добавлено: 16.09.08 08:06
Преобразует адрес переменной в константу, оюъявленной bd, dw, dd в константу.
lea - load effective address.
Можно использовать для решения несложных выражений типа lea eax, [edx*4+16], при этом в eax будет занесено значение выражения edx*4+16.
Номер ответа: 17
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #17
Добавлено: 16.09.08 15:38
а если сделать
%define f(x) x*4+16
mov eax, f(edx)
, это сильно медленнее получится?
Номер ответа: 18
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #18
Добавлено: 19.09.08 15:01
Morpheus, вся сложность в том, что с тобой говорят на синтаксисе MASM, а тебе компилировать придется в NASM. %define - это какая-то по ходу директива препроцессора NASM (или макрос?) и к архитектуре Intell она мало относится. Так что х.з. ))
Вероятно написанное будет пытаться компилироваться в нечто типа:
lea eax,[4*edx+16] или же выдаст ошибку
Номер ответа: 19
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #19
Добавлено: 19.09.08 21:18
Morpheus, ты зачем ассемблер изучаешь? Так вот начинай уже пользоваться отладчиком/дизасемблером