![]() |
|
|
![]()
|
|
| drZmeu |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 22.11.2006 Репутация: нет Всего: 1 |
Объясните пожалуйста! Программирование на ASM под Windows
Привет знатоки ASM наверное самого интересного языка. Я решил потихоньку начать изучать ASM под Windows и тут же наткнулся на проблему и понял что ничего пока не понимаю в ASM под Windows и под DOS наверное тоже =))) Я в проекте попытался задействовать 3 WinAPI функции GetModuleFileName, MessageBox, ExitProcess Так вот я не знаю как правильно работать с функцией GetModuleFileName под ASM под C++ понятно! Пожалуйста разъясните как и что куда вносить и т.д Или отправьте куданить где это объясняется. С уважением, drZmeu.
Компилятор FASM 1.67.21 но это не очень важно. --------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code] |
|||
|
||||
| drZmeu |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 22.11.2006 Репутация: нет Всего: 1 |
Прощу прошения за свою нелепость и глупость уже разобрался сам
Тяжеловато переходить с Visual C++ на FASM У мну есть ещё несколько вопросов например как склеить 2 строки дайте пожалуйста линк на какой нить ликбез по программирования на ASM под Windows Кому интересно сделал то что хотел таким макаром
Мне кажется что-то тут неправильно =\ --------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code] |
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 8 Всего: 23 |
Склеить две строки так:
lstrcat, addr_строки_к_которой_клеишь,addr добавляемой_строки |
|||
|
||||
| drZmeu |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 22.11.2006 Репутация: нет Всего: 1 |
Ооо спасибо большое =)
Добавлено через 26 секунд Я думал это только в C++ можно так =))) --------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code] |
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 8 Всего: 23 |
invoke же еще.
|
|||
|
||||
| drZmeu |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 22.11.2006 Репутация: нет Всего: 1 |
Я думал invoke служит для объявления winAPI!
--------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code] |
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 8 Всего: 23 |
Это макроопределение, заменяющее call с передачей параметров вызываемой функции.
|
|||
|
||||
| drZmeu |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 22.11.2006 Репутация: нет Всего: 1 |
Хорошо вынужден согласится поскольку в ASM не рублю да и счетаю что ты прав =)
А можешь привести пример заменив invoke на call в моём верхнем примере? --------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code] |
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 8 Всего: 23 |
|
|||
|
||||
| drZmeu |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 22.11.2006 Репутация: нет Всего: 1 |
Оооо спасибо большое =)
А где об этом можно прочитать побольше просто пример я написал по подобию тех программ которые были в папке EXAMPLES и шли вместе в FASM Или всё равно как писать что invoke что call ,,,???,,, Добавлено через 4 минуты и 34 секунды Эммммммм. Я переписал так:
А он зараза меня на *** послал ='( --------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code] |
|||
|
||||
| drZmeu |
|
||||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 22.11.2006 Репутация: нет Всего: 1 |
На самом деле чтоб не дергать вас уважаемые эксперты! Я хотел бы получить от вас направление на книжку или материал по ASM я опишу что я хочу узнать а решать вам! Просто я немогу слегка въехать
в ASM после языка высокого уровня он настолько забивает мозги что ужс. Я привожу пример кода в котором я буду говорить что мне непонятно а вы дайте мне направление на литературу!
Первое что меня интересует тут это
Почему в wc.hInstance мы заносим содержимое из eax
Тоже самое я так понимаю eax выступает переменной в которой будет результат работы?
Вот тут если мы открываем стек то почему только для 3 параметров хотя WindowProc параметра 4 если мы конечно для него открываем если не для него то для чего тогда? и т.д Вот мне собственно нужна книжечка где это будет описано! Я правда извиняюсь за такие вопросы но мне нужна помощ ! =))) С уважением, drZmeu --------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code] |
||||||||
|
|||||||||
| anwe |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 8 Всего: 23 |
wc.hInstance - это часть структуры WNDCLASS, которая используется при регистрации класса твоего окна. А почему из еах? - Потому что результат выполнения API-функций помещается именно туда. Что означает wc.hInstance - ниже.
Аналогично: результат в еах. А через or проверяется его равенство нулю. Смотри строкой ниже идет сравнени jnz.
Посмотри на 48 строку кода. Там значение этих регистров восстанавливается. Так работаtт винда: она не затрагивает эти регистры и "надеется и ожидает от тебя", что и ты их не поменяешь. Ну а теперь ссылки, как просил. Дополнение к первому вопросу про wc.hInstance конечно же найдешь в msdn. А начальная литература здесь: Iczelion |
||||||
|
|||||||
| drZmeu |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 22.11.2006 Репутация: нет Всего: 1 |
Оооо. Спасибо огромное что разъяснил очень многое стало понятно и за литературу огромное спасибо ;) тему можно считать закрытой =)
Ещё раз спасибо anwe тебе +1 =) --------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code] |
|||
|
||||
| drZmeu |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 22.11.2006 Репутация: нет Всего: 1 |
И заключительный вопрос! =)
Почему не работает этот код
Я поковырялся в отладчике и так меня и не осенило =( Но кое что я понял! Да вы и сами поймете загрузив программу в OllyDbg или в какой нить другой отладчик! Ну и конечно рабочий вариант
А вопрос мой почему же не работает? С уважением, drZmeu --------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code] |
||||
|
|||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 8 Всего: 23 |
Не наю, не наю. В MASM'е работает и так и так.
А, кажется, догадываюсь. Надо прописать соглашение о передаче параметров функции: как в сях stdcall. Но где - не знаю. |
|||
|
||||
| drZmeu |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 22.11.2006 Репутация: нет Всего: 1 |
Будем рыть =) Может кто-то знает =)
А на самом деле как лутше? Так
или так
или разницы нету? Я в отладчике ковырялся вроде всё также только одно работает а второе нет =))) --------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code] |
||||
|
|||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 8 Всего: 23 |
По сути дела - по вкусу.
|
|||
|
||||
| drZmeu |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 22.11.2006 Репутация: нет Всего: 1 |
Спасибо! Но всё же может кто сталкивался с этой проблемой?
--------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code] |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 7 Всего: 158 |
это не проблема, а незнание синтаксиса...
|
|||
|
||||
| drZmeu |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 22.11.2006 Репутация: нет Всего: 1 |
dumb я очень признателен за 4 байта кода которые Вы добавили но я только начал изучать ASM! =)
Было бы неплохо если бы Вы подсказали почему не работает этот код:
А по поводу ADDR большое спасибо =) Всегда рад получить хороший пример! С уважением, drZmeu =) --------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code] |
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 8 Всего: 23 |
drZmeu, посмотри внимательно, тебе же написали ADDR, что означает адрес переменной. Для твоего примера так:
|
|||
|
||||
| drZmeu |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 22.11.2006 Репутация: нет Всего: 1 |
Эмммм. Я бивень не понял =)
Извиняюсь только вот что пишет компилятор в этом случае Error: undefined symbol. Instruction: push addr _buf =\ Может в начале какойто inc нужно подключить? --------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code] |
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 8 Всего: 23 |
inc у тебя уже подключен. Попробуй вместо addr написать offset. Если нет - то нет. Я не знаю синтаксиса Fasm'а.
|
|||
|
||||
| drZmeu |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 22.11.2006 Репутация: нет Всего: 1 |
Неть не хочет гад! =(
--------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code] |
|||
|
||||
| drZmeu |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 22.11.2006 Репутация: нет Всего: 1 |
Странно но полазив по форума и поюзав Serch я наткнулся на пару примеров =\
Вот код работающий
Бред почему именно так =\ парни но без вашей помощи яб не разобрался спасибо вам anwe и dumb =) Тема закрыта окончательно =) --------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code] |
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 8 Всего: 23 |
drZmeu, а отличия видишь?
|
|||
|
||||
| drZmeu |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 22.11.2006 Репутация: нет Всего: 1 |
в отладчике нет =)
Ну а в коде конечно да =) Ладно всем огромное спасибо за ответы =) --------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code] |
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 8 Всего: 23 |
|
|||
|
||||
![]()
|
| Правила форума "Asm для начинающих" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для начинающих | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |