Здраствуйте!
Прочитав н-ное количество литературы по Ассемблеру у меня
сложилось впечатление, что я,(грубо говоря)умственно отсталый. Неужели я обречен? Непонимаю...
Вся проблема заключается в том что трудно перевареваемеые текста
никак недойдут до головы (невозможно визуализировать свои мысли). Если в данных словах находите себя,
то поделитесь пожалуйста и своим мнением по этой проблеме умственного характера. И если у когото в прошлом было такое же мнение по этому поводу и он(она :)) благополучно эту проблему решили пожалуйста
поделитесь стратегией своего подхода к данному языку.
Читал неделю книжку, неделю практиковался под ДОС, остальное время программирую под Win32...
Ничего особо стопорного не наваливалось, единственное что было понять несколько сложнее так организацию стека, и как организуются "локальные" переменные.
Еще немножко с регистрами, чуть-чуть с памятью... Но ничего уж такого жудкого там нет точно!
Совет:
Бери сразу masm32 под DOS программировать не стоит, имхо, проще сразу начать с винды
Далее среду RadAsm, дебагер вроде OllyDbg. Компилируешь программу, открываешь в отладчике и смотришь как теория медленно перерастает в практику... Т.е. теория оно хорошо, но одно дело как ты выучиваешь не видя результата, и совершенно другое, как ты видишь как простейшие команды выполняют задуманное !
Ну, я вообще например не понимаю как можно думать на асме, так то если бы перевесть с бейсика на асм, это ещё ничего, но писать сразу... мне надо алгоритм думать а я буду напрягать голову как сделать х=х+1 (2CyRax: можешь не отвечать, это не вопрос, а пример)
Так что хз, чтобы чё то заработало инхо надо сначала прогу или на беймике написать или на бумаге
ЗЫ: не пугай так, а то подумал, что это Павла взломали и он зашёл под этим ником и щас кого-то кикнет навсегда и останемся мы без сала
Ладно пофиг.
А с чего это ты в друг решил асм изучать? по моему и без него непостяжимого хватает ну, там си++ например, тоже штучка недетская. Всё таки как мне кажется, что например при написании 3Д игрушек си рулит (ещё конечно много что рулит, но на асме трудновато будет)
Morpheus как не крути но асм будет оставаться актуальным всегда...
sne мне интересно знать какую книгу читаешь?
..........................................
Товарищи программисты давайте поможем всем постигающим азы Ассемблера (мне в том числе)!
выкладывайте сюда ссылки на электронную литературу которая реально и без заморочек понятных только автору(или уже знающему) сможет обяснить все нюансы асма.
2Morpheus, нечего тут думать, есть команда add eax, 1
вот тебе и альтернатива Вб шному варианту
А вообще Павел1 не стоит расстраиваться и не стоит торопиться, не жди за сильно короткий срок сильно больших результатов...
по поводу книг, книг существует великое множество, купил я книгу Юрова Ассемблер для вузов, там я почувствовал себя таким каким ты себя сейчас ).
Неплохая книга это Абель "Программирование под ДОС", но зачем знать дос прерывания, мне не понятно...
У меня есть неплохой туториал, непонмю от куда скачал, толи с wasm.ru толи еще откуда, могу если что прислать, называется он: "Справочная система по языку Ассемблера для IBM PC", да и еще хорошо было бы скачать форум с васм.ру и уроки исзелиона, неплохой мануал по программированию окошек...
Так и думал, что кто нить ответит всё равно i++ проще
А вообще, зачем вам асм? что вы такого на нём собираетесь делать если не секрет, чего нельзя сделать на VB или на худой конец на C++ ?
Ну, я конечно вас глубоко понимаю если вы пишете переборщик паролей или вирус, тогда я беру все слова обратно Тут асм полезен будет наверное.
Морфеус у тебя есть такое чувство как моральное удовлетворение?
Потом если ты будешь исследовать какуюнить программу тебе C и VB тут врядли в помощники подойдут...
freeloader если встречу этого самого Юрова то морду ему набью (шутка) Я его книгу уже месяц читаю и всё безрезультатно, просто эта книга является столь информативна что пока читаешь одну главу забываешь другую, мне кажется что эта книга будет полезна уже имеющим опыта на Асме... Хорошо что ты раставил всё по своим местам.
Вот я только что скачал книгу-Справочная система по языку Ассемблера для IBM PC и опять этот Юров. freeloader если у тебя другой автор пришли пожалуйста мне на мыло "свою" версию.
...............................
Уважаемая администрация прошу не удалять эту тему форума... Я хочу разместить здесь весь свой процесс обучения на Ассемблере. Начну с нуля и буду двигаться вперед по иерархии излогая всю литературу по которой буду заниматься и все трудности и заморочки с которыми мне прийдется столкнуться. Надеюсь что понимающие в программирование на асме будут помогать решать какието аспекты. Это будет полезно и всем тем кто решил завоевать медаль на этом поприще но не знает с чего начать.
Дело в том что и у меня точно такая же версия, ты ее почитай это намного понятнее чем его толстючая книга в которой столько инфы, что начинаешь просто теряться. Больше под Win я не знаю книг, если и есть, то на них очень сильное внимание акцентируется в сторону окошек, назначение такой книги тоже весьма непонятно, ведь цель изучить ASSEMBLER, а не API функции. Вообщем почитай этот справочник можно сказать сокращенная версия его книги, изложено все намного понятней...
Всё таки мне кажется учить АСМ под ДОС - лишнее. Конечно знать что такое прерывания неплохо, но если ты не пишешь драйвер, то тебе эти знания не пригодятся. Советую пропустить на начальном этапе ДОС вообще и заняться им позднее. Начинай сразу под Windows - так проще.
Да, и скажи что тебе не понятно.
Если ты хочешь быстро освоить язык ассемблера на начальном уровне, не вдаваясь во все тонкости, советую скачать это
http://www.vbnet.ru/soft/softdownload.asp?id=31
1.Формат команды в ассемблере.
ИмяКоманды Приёмник, Источник.
2. Переменные.
Постоянно доступными для свободного использования являются регистры EAX,ECX,EDX,EBX,ESI,EDI
Они могу выступать как приёмник или источник в п.1.
Общепринятые их названия:
EAX - аккумулятор;
ECX - счётчик;
EDX - данные
EBX - база
ESI - источник
EDI - приёмник
К этим названиям не привязывайся, они существуют исключительно для стандартизации.
Регистр можно представить как переменную типа Long. Каждый регистр может быть поделён на несколько частей. Например для регистра EAX:
ИмяКоманды EAX, Источник
(результат заданной команды будет помещён в регистр EAX)
ИмяКоманды AX, Источник
(результат заданной команды будет помещён в правую половину EAX)
ИмяКоманды AH, Источник
(результат заданной команды будет помещён в левую половину AX)
ИмяКоманды AL, Источник
(результат заданной команды будет помещён в правую половину AX)
Здесь AX - подобие Integer, AH и AL - Byte
EAX может выступать и в роли источника, но результат всё равно будет помещён в приёмник. Приёмником может служить один из указанных в п.2. регистров.
В Local Assembler (ссылку на который я тебе дал выше) ты можешь попрактиковаться. Пооткрывай примеры и посмотри как там используются команды и регистры.
Так что хз, чтобы чё то заработало инхо надо сначала прогу или на беймике написать или на бумаге
Или на ассемблере, какая разница? Всё зависит от мастерства. А вот если ты к тому же ещё и коментарии будешь писать, то прочитать любой код вообще труда не составит.
А вообще, зачем вам асм? что вы такого на нём собираетесь делать если не секрет, чего нельзя сделать на VB или на худой конец на C++ ?
Дело в том что ЯВУ - это не совсем программирование. Вернее это программирование под определённый компилятор. А ассемблер - это программирование под определённый процессор
Идеальных компиляторов не бывает, и если для поставленной задачи у компилятора есть одно-два решения, то в ассемблере оно ограничивается исключительно твоей фантазией. Пока компилятор не обладает человеческим интеллектом, он не сможет создать действительно нужного для ситуации решения, а лишь подберёт похожее из своей базы шаблонов.