![]() |
Assembler
Господа! Я собственно решил освоить Assembler... Написал свою первою програмку... но собственно есть трудность не могу её откомпелировать, т.к. весьма смутно представляю как это сделать...
Пожалуйста помогите! |
прямо для тебя.... все по шагам
_http://www.geocities.com/thestarman3/asm/masm.htm |
:молись: Спасибо... Если всё получиться отпишусь :)
|
Цитата:
читай правила :contract: http://www.imho.ws/announcement.php?...uncementid=116 Удачи! |
NetS, Правила - это хорошо... Но писать:Фибропозотулятор и ионизация магнитного поля...Если всё получиться отпишусь :) - стрёмно :)))
|
Рекомендую посмотреть этот ресурс. http://www.kalashnikoff.ru/Assembler/. Много уроков по ассемблеру для новичков.
|
Господа!У меня ещё вопрос по ассемблеру, точнее по FASM'у...
FASM позволяет обходиться без линкера, но при этом раскладку секций в PE-файле и таблицу импорта приходится создавать своими ручками. Внимание вопрос: КАК? P.S. Насколько я понимаю с помощью специальных директив ассемблера... |
Skazachnik
В каталоге examples что удивительно есть примеры, из которых следует что секция задается как: section '.data' data readable writeable или section '.code' code readable executable или аналогично. |
Господа! Поздравьте меня (но только в привате, а то администратор не оценит :)) я на писал свою первою программу на ассемблере!!! На Fasm'ме! Вот её исходник:
include 'win32a.inc' .code start: mov eax, 2 add eax, 3 ret section '.data' data readable writeable .end start И решил открыть в OllyDbg v1.10... А она мою прогу откомпилиную отказалась открыть выдав ошибку! Почему? |
Кто знает поскажите, плиз где можно слить документацию по FASM'у на русском?
|
Например, здесь....
_http://mythrillus.land.ru/tajga-tut/preproc.html или здесь _http://ruwiki.com/article/Fasm Или набери в яндексе fasm и получишь море ссылок |
Помогите разобраться почему выводит только Menu1 при проверке Area
AreaLeft RECT <1,0,1280,1> AreaTop RECT <0,1,1,1028> .ELSEIF uMsg==WM_LBUTTONDOWN mov eax, lParam mov ecx, eax shr ecx, 16 ; ecx = Y and eax, 0ffffh ; eax = X invoke CheckForButton, eax, ecx .IF eax==LeftBorder invoke ShowMsg, addr Menu1 .ELSEIF eax==TopBorder invoke ShowMsg, addr Menu2 .ENDIF xor eax, eax ;--------------------- CheckForButton proc dwX:DWORD, dwY:DWORD invoke PtInRect, ADDR AreaLeft, dwX, dwY .IF eax!=0 mov eax, LeftBorder ret .ENDIF invoke PtInRect, ADDR AreaTop, dwX, dwY .IF eax!=0 mov eax, TopBorder ret .ENDIF xor eax, eax ret CheckForButton endp |
Господа! Требуется помощь... Проблема заключается вот в чём: при установке SoftICE 89% прог на моём компе начинают орать и отказываюся работать(насколько я знаю создаёт SoftICE в реестре ключи без котрых он работать не может, а программы их "палят"). Так вот подскажите как "спрятать" SoftICE чтобы он стоял на машине, а программы его не палили.
Предлагайте свои альтернативы(отладчики, например беспалевные... кроме ОллиДебагера, конечно :)) З.Ы. Все спасибы за советы напишу в приват :contract: |
|
Вложений: 2
Здравствуйте Madness!
Когда то вы мне помогли запустить Паркан и заразили меня тягой к Ассемблеру. Но я видать такой тупой, что не могу сдвинуться с места. Короче я зашел на сайт Калашникова, скачал книгу и примеры и начал - вернее хотел начать. У меня MASM32 версии 8.2 и я в нем хотел запустить программу Hello World! Но у меня даже это не получилось. Вот решил обратиться к вам! Может поможете? Я выложу jpeg файлы может вам будет ясна моя ошибка? Кстати я потом скачал MASM6.11 но и это не помогло, видать руки совсем не оттуда. Помогите пожалуйста. (хотел написать в приват но у вас превышен лимит писем) вот файлы |
lewa
ну ты голубь даешь...... У тебя тест программы лежит d:\downloads\assembler\выпуски\файлы -приложения\001 а masm ты запускаешь из d:\masm11\bin.... ты либо masm запускай из папки где лежат исходники либо указывай полный путь до него.... Т.е вот так: Ты находишься в d:\downloads\assembler\выпуски\файлы -приложения\001 и командная строка будет выглядеть следующим образом: d:\masm11\bin\ml.exe prog.asm тож самое с линкером... А вообще, прежде чем заниматься ассемблером не мешалоб основы DOS выучить... Про абсолютные и относительные пути, понятия и структуру файловой системы, переменные среды окружения... Это тривиальные вещи которые необходимо знать и тогда подобные ошибке не будут вызывать изумления |
lewa
Было дело, не все ж ломать :) Приходится вот баги править, и не только в паркане :) Если прописать каталог masm/bin в переменную окружения path, то можно будет не указывать пути к ехешникам ассемблера. На втором скрине у тебя нету пробела перед /AT <- это команда для ml.exe, а у тебя оно воспринимается как кусок имени. По первому скрину не понятно, похоже на ключ /coff ругается, хотя мож и нет. ЗЫ. Под виндовс, мне кажется, проще, понятней и нужней щас изучать ассемблер. Тут мануалов пачка. Оболочка RadASM есть удобная, только настроить нужно. |
Madness ЗА ответ и за ссылку особая благодарность! Я разобрался! Так же нашел RadASM буду пробовать. А нет ли еще чего почитать для начинающих по Асму? Калашников у меня уже есть.
Merlin Cori Да, все дело было в элементарных путях. И еще я пытался запустить это дело из под винды, а потом установил Дос навигатор и в нем все пошло как по маслу. Только все как в досе. А я, расчитывал как в Делфи, сразу окошки увидеть :) Ну так ведь я вчера его начал изучать. Спасибо, за советы. |
Madness Там по той ссылке уроки для тех кто имеет кое какой опыт, а не подскажите по Асму для винды, с нуля есть какой нибудь материал?
|
|
Madness
Вот это да! вот это ответ! Жаль что к репутации ничего добавить не могу - уже столько раз добавлял, что не дают, а стоит еще тысячу раз добавить! |
Подскажите, плиз, :confused: про программирование сетевых приложений на асьме...
|
Skazachnik
http://wasm.ru/publist.php?list=16 |
Господа! Расскажите плиз про оптимизацию программ с помощью ассемблера...
|
Учусь ориентироваться на форуме.Уже сразу нахожу себя.
Может я не там пишу свои сообщения.Это интересно начинающим,может методистам.Трудный он.Но как звучит - например:"указатель стека","дно стека".Вообще не могу представить где это и что это.Но каждый день читаю,заказал еще книгу Питера Абеля.Там вроде азы.Но 7-е издание.В i8086 стек организован аппаратно.Там два регистра всего SS и SP. В исходном состоянии стек пуст,векторный адрес SS:SP указывает на "дно стека"(.Хельма тупо сидела.).Пусть исходное состояние стека задано так.вект.адресом:SS:SP =1234:0040,вот он и указывает на дно стека.Дальше пословно доб.элемент,т.е.знач.16-разр.рег-стра (или слово памяти).Это выполн.команда PUSH,а в к-ве источника может выступать или регистр или слово памяти,напр.посл.команд MOV AX,89ABH PUSH AX приведет к тому,что по адресу 1234:003E будет размещено значение AB89,а знач-е рег-ра уменьш-ся на 2 и станет SP=003E,т.е. будет указывать на вершину стека.Если т-рь ком-ду ADD AX,9 PUSH AX получим SP=003C, и по адресу SS:SP будет размещено значение B489.(Что и можно увидеть в отладчике).(стр.30 Шляго А.Н.).Пишите,если кому интересно. С уважением Сергей.:mad: |
"о, сколько нам открытий трудных готовит провсещенья дух..."
Не в обиду, но ваши исследования в области архитектры компьютеров не несут никакой новизны. И если вы хотите вести блог с подробным описанием ваших танцев вокруг асма, то это легитимно. Но к форуму не имеет отношения. А за решимость в изучении - респект. |
Здравствуйте уважаемый crawler.Спасибо за ответ.Отнюдь не в обиду.Я чайник.Значит не там ищу общение.Подскажите где.
Но за 3 года (2006) мои и Ваше сообщение по асс.первые.Здесь.Изучать его мучительно сложно.Знаю,что надо месяцы.Идеальных книг нет.У меня их не одна.Чаще пользуюсь уч.информатики для школьников Шляго Александра Николаевича.Сегодня утром разобрал пример в дебаггере DOS. Там понравилось перевод мнемокода в машинный код и наоборот.Впечатляет.Больше нигде ни в книгах ни в инете не видел.Но конечно пользуюсь и cv и afdpro.Еще честно признаюсь вчера только понял почему в 1килобайте 1024 байта,а не 1000.(2^10).Интересно все ли это знают?А вот я сомневаюсь,что архитектуру cpu понимают.Да программы пишут люди.Хотя основа ассемблера архитектура(простейшая хоть 8086 или 486).Хотелось бы знать Ваше мнение и мнение других.Повторяю,если я не там нахожусь,то пожалуйста подскажите где я найду соратников по нач.уровню.И чтобы там и были высказывания специалистов. С уважением.Сергей.:( |
GSergey, стремление к знаниям - это похвально, но учить сегодня асм - это выброшенное впустую время. Может пригодиться только в одном случае - если есть планы дальше заняться взломом программ.
|
Спасибо за ответ,уважаемый BorLase. Сегодня,кстати знакомая мне преподаватель информатики сказала,что за 19 лет работы,лишь один ученик выучил ассемблер - доказатель-
ством чему была написанная им программа.Но Ассемблер - это нечто большее,чем язык.Это образ мышления.Возможность попытаться познать прежде всего себя.Но пользователю,если он интересуется работой с восстановлением информации,редактированием дисков неизбежно столкнется с программами от Runtime Software(DiskExplorer,GetDataBack),впрочем и продукцией от Acronis(что более доступно).Да и та же FDISK и др.Также если заинтересуетесь вирусологией(конечно в плане безопасности),то Вам не понять будет,что в этих таблицах за цифры.Хотя сегодня коллеге я просто переустановил Винду,а не стал доискиваться причин.Для себя же я так не поступаю. Завтра получу в Озоне еще одну книгу по Ассемблеру,которою по счету!На этот раз 7-е издание Пирогова. С уважением Сергей.:( |
|
Цитата:
1) асм сейчас не нужен в 99% случаев. разве что есть супер-критичный по времени участок кода в цикле третьего уровня вложенности, когда даже миллисекунда важна. иначе - нафиг: понты и только 2) "Но Ассемблер - это нечто большее,чем язык.Это образ мышления." фигня на постном масле. ПРОГРАММИРОВАНИЕ - вот что образ мышления. а не язык. цикл - он и в асме цикл, и в си, и в бейсике. язык - это вторично. 3) пассаж по поводу восстановления данных я вообще не понял, если честно. какое отношение к ассемблеру имеет знание шестнадцитиричной системы счисления? резюмируя - GSergey, если учиться кодингу, то асм - это далеко не лучший выбор. если же для понтов... :biggrin: тогда лучше учиться кодить сразу в hex-кодах процессора ;) |
Уважаемые участники форума.
Спасибо за Ваши сообщения.Со всеми согласен.Мне стало понятно,что этот форум не для меня,а для профессионалов. Желаю всем удачи.:( |
GSergey, обижаться тут не на что.
Как отметил Plague, это форум, а не блог. Если возникает вопрос, "а как бы мне решить это тонкое место" - все ок. Но излагать тут историю своих поисков - не комильфо. |
| Часовой пояс GMT +4, время: 05:20. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.