|
4 / 3 / 0
Регистрация: 03.05.2009
Сообщений: 82
|
|
До слез Хочу научится Ассемблеру!!!03.05.2009, 19:25. Показов 49391. Ответов 112
Метки нет (Все метки)
Хочу научится Ассемблеру!!! С чего начать? Пока читаю Калашникова но не умею работать на МАСМе там всё на английском. Есть ли русская версия или руссификатор?
Английский у меня не очень... у калашникова говорится что надо умет шарит на DOS и на Нортоне а где взять их Я все учебники самоучители скачала со всех библиотек в интернете но пока о нортоне ничего не нашла кроме как на Википедии Прошу помоч разобратся.
0
|
|
| 03.05.2009, 19:25 | |
|
Ответы с готовыми решениями:
112
Хочу научится программированию Хочу научится программировать Хочу научится веб дизайну |
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
| 19.07.2009, 02:20 | |
|
Evg, ясно
Есть хорошая фраза: можно изучить язык программирования за 3 дня, а научиться на нем программировать только за 3 года.
2
|
|
|
Anthony
|
|
| 19.07.2009, 09:11 | |
|
Sayfera русскому языку для начала научись.
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 19.07.2009, 14:55 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Сообщение было отмечено как решение
Решение
**
Добавлено через 2 часа 2 минуты 58 секунд Попробую ещё раз разложить всё по полочкам и изложить доступно. ======================================== ================ Для начала касаемо тех, кто "выучил ассемблер". За народной мудростью в этом отношении ходить далеко не надо - оно чуть выше: Одного "знания ассемблера" явно недостаточно в тех случаях, когда программирование на ассемблере является объективной необходимостью. В качестве примера хочется привести эту тему. Не для того, чтобы похвастаться, а для того, чтобы продемоснтировать выше сказанное на конкретном примере. Автор "знал ассемблер", но я сильно подозреваю, что общий принцип был почерпан из книги или лекций. Т.е. проблема автора была в том, что у него не было чёткого представления, как на самом деле работает машина. Ну и сказывалась нехватка опыта в отладке программ. Это скорее дополнительная демонстрация к этой теме, потому как для планировщика задач мы имели задачу, которую впринципе нельзя запустить из-под отладчика. С моей же стороны было практически нулевое знание интеловского ассемблера, практически нулевые знания того, как всё это дело работает под DOS'ом. Но у меня имелись общие знания того, как устроен процесс переключения задач в операционных системах. И эти знания оказались более важными. В итоге я целую неделю добивался от товарища, чтобы он мне рассказал, что и как у него делается. Так много времени было потрачено потому, что у человека кроме "знаний ассемблера" особенно ничего и не было, а потому на конкретно поставленные вопросы он не мог дать внятные ответы. Мои вопросы прежде всего касались "знаний ассемблера" (коих у меня не было) и знаний, как это работает конкретно под DOS'ом. После чего я поратил 2 часа на то, чтобы всё это повторить и запустить самому, и ещё 2 часа, чтобы научиться делать отладочную печать и в итоге выяснить причину ошибки Просо ещё раз хотелось бы подчеркнуть - "знать ассемблер" и уметь писать на нём простенькие программы (кторые более разумно писать на языке) ещё не делает вас специалистом в этой области. И уж совершенно точно не надо рекомендовать новичкам изучать программирование с ассембелра, потому как со стороны такие предложения выглядят как чистапацанские дешовые понты ======================================== ================ Теперь вернёмся к нашему примеру hello world. Для того, чтобы сделать это более понятным, обратимся сначала к примеру из поста 83 для real-mode x86
Далее будуть работать для кода под линукс, потому как там я хоть знаю, как всё это скомпилить за запустить. Код, аналогичный DOS'овскому, под линукс выглядит следующим образом. Вот оригинал, выдранный из поста 87
======================================== ================ Теперь попытаюсь объяснить, как можно сделать то же самое, но работая на Си с использованием ассемблерных вставок. Опять-таки всё это будет сделано в предположение использования компилятора gcc (в части синтаксиса ассемблерных втсавок), но при желании это переделывается под любой другой компилятор. При этом макроблоки с ассемблерными вставками формально будут находиться в отдельном файле (наподобие того, что при обычной работе библиотеки лежать где-то в стороне и мы их код не трогаем), а потому программист не заморачивается тем, что же там внутри написано, он просто использует эти макроблоки Полагаю, что все строки компиляции мы свалим в отдельный скрипт и каждый раз будем запускать этот скрипт. Запуск скрипта я буду опускать, чтобы было поменьше мусора
В своём оригинальном посте (пост 81) я всё это выносил в отдельный файл и строил на макросах, чтобы проще было добавлятьновые системные вызовы. Сейчас я всё свалю в один файл, и опишу реализацию макроблоков в таком виде, в каком они вылезут после раскрытия макросов - чтобы проще было понимать и перед глазами было меньше непонятных вещей
А в завершение можно просто продизассемблировать полученный исполняемый файл. Правда здесь дизассемблируется только фрагмент кода. Фрагмент данных оказываются в отдельном сегменте (с точки зрения формата elf) и потому в эту выдачу не попадают. Данные печатаются отдельным приказом
Попробуем вернуться к старому вопросу
В любом случае при снятии этих ограничений придётся писать дополнительный код хоть на ассемблере, хоть на языке, поэтому для демонстрации считаю эти ограничения допустимыми При вставлении кода на форум я намеренно "спрятал" внутренности файла "syscall.h", потому как мы считаем, что она уже кем-то написана, а мы её только используем. Точно так же, как этот кто-то реализовал нам системные библиотеки, а мы их используем при написании программы на языке. Ну и по поводу этого же syscall.h. Можешь заметить, что реализации процедур, осуществляющих системные вызовы, очень похожи друг на друга, с небольшими лишь отличиями. Именно поэтому в 81-м посте они были реализованы через макросы. Но такой вариант тебе пока малопонятен, а потому оставлю в виде кода syscall.h
======================================== ================ Какие плюсы при написании на Си:
Минусы при написании на Си:
======================================== ================ Вернёмся ещё раз к тому же вопросу Хочется ещё раз подчеркунть, что не надо зацикливаться на чём-то одном. Оптимальны вариант почти всегда заключается в разумной комбинации использования разных технологий и диктуется в первую очередь надёжностью и затрачиваемым временем на поддержку и развития программы, а не реальным временем её исполнеия. Понятно, что если один вариан в 5 раз геморройнее, но в 50 раз быстрее - надо брать геморройный вариант. Но если вариант на ассемблере работает в 2 раза быстрее, но требует в 10 раз больше времени на надёжную отладку, то такой вариант однозначно идёт лесом Добавлено через 11 минут 13 секунд Всю эту технологию можно повторять и под DOS и под Winddows. Только надо понять, как там ручками правильно запустить компилятор и как правильно поддержать ассемблерные вставки в файле syscall.h. Код программы при этом не меняется
14
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4 / 3 / 0
Регистрация: 03.05.2009
Сообщений: 82
|
|||
| 20.07.2009, 23:15 [ТС] | |||
|
Автору всё интересно она следит за Вашей дискуссией очень долго. Но жаль что откланились от заданных параметров для чайников и прониклись глубже. Я хотела что бы чайники войдя в эту тему обрели для себя начальные знания по асму как и я. Если можно давайте возвратимся к начальному этапу по асму а глубокое изучение будет через создание новых тем. Вед тема может вдохновить будуших профи... Вот что я для себя уяснила за прошедшее время отсутстствия на дискуссиях. По асму оказалось у меня куча книг пока не очень понятных и самая главная понятная книга для начинаюших это - Калашников "Ассемблер это просто" Скачайте эту книгу, установите себе на флешку Windows9x и все калашниковские проги будут там работать. Я хочу задать вопрос профайлам: объясните пожалуйста где можно найти таблицу цфровых значений команд асма например: mov - hex,b значения xor ... ret ... push ... может я что то пропустила? Добавлено через 10 минут 14 секунд Если Вы считаете себя профи русского языка то Вам здесь не место, тут обсуждаются вопросы по программированию на ассемблере!
0
|
|||
|
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
||
| 20.07.2009, 23:30 | ||
|
0
|
||
|
45 / 45 / 1
Регистрация: 23.05.2009
Сообщений: 92
|
||
| 01.08.2009, 01:33 | ||
1
|
||
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
| 01.08.2009, 01:41 | |
|
А вот из-за подобных мыслей у разработчиков, и тормозят элементарнейшие программы у пользователей, которые не хотят кормить топ менеджеров IT компаний.
0
|
|
|
|
||
| 03.08.2009, 21:06 | ||
|
0
|
||
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 03.08.2009, 21:11 | |
|
Goodwin98,
А вот из-за подобных мыслей у разработчиков, и тормозят элементарнейшие программы у пользователей, которые не хотят кормить топ менеджеров IT компаний. Я открою тебе одну простую истину: ВРЕМЯ ПРОГРАММИСТОВ СТОИТ ДОРОЖЕ ЧЕМ КУПИТЬ МОЩНОЕ ЖЕЛЕЗО. И сейлсы это очень хорошо понимают.
1
|
|
|
nlp
|
|
| 09.08.2009, 05:17 | |
|
|
|
|
|
||
| 09.08.2009, 11:58 | ||
|
0
|
||
|
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
| 09.08.2009, 12:20 | |
|
Rififi, другое дело что софт они пишут для пользователей и не у всех железо может потянуть. Из-за чего многие пользователи отказываются от этого софта в пользу конкурента, с похожим ПО, но меньшими требованиями
0
|
|
|
0 / 0 / 0
Регистрация: 07.08.2009
Сообщений: 8
|
|
| 09.08.2009, 17:00 | |
|
А Sayfera - это реальный персонаж или чейто виртуал)?(колитесь блин)
Это ведь шутка)?
0
|
|
| 09.08.2009, 17:00 | |
|
Хочу научится писать парсеры. С чего начать? Хочу научится программировать но не знаю с чего начать Хочу научится программировать микроконтроллеры, но не знаю с чего начать Помогите научится!!!! Как научится ООПэшить? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|