• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Почему так сложно изучать ASM ???

juliknevoruy

Green Team
19.09.2020
27
7
BIT
0
Добрый день, ваше светлость. Примерно неделю назад в мой несозревший ум полезла гениальная идея - изучить ассемблер. Пробовал
начать с самой лёгкой книги "Ассемблер - это просто 2011г"(по крайней мере, так много где писали). Создаётся такое впечатление, что
я ребёнок, который попросил батю научить плавать и он меня сбрасывает с моста в реку. Я вообще ничего не понимаю, мне больно, я
страдаю, НО! я всё ещё хочу его учить(не спрашивайте зачем). Кто-нибудь из великих мудрецов ассемлера может помочь неопытному
падавану понять - КАК ВООБЩЕ ЕГО УЧИТЬ?
А также есть такие вопросы как:
-Что за i8080 (понял, что это связано с процессором), но с чего начать и какой тип у современных процессоров intel
-Знаю есть две битности винды(32 и 64) - что такое x64 и x86?
-Что за 16,32,64 бит в ассемлере. Это вообще что и как мне это воспринимать?
-Какие лучшие IDE есть для asm?
-Какие книги стоит начать читать с нуля?
-О каких моментах стоит узнать при изучении?

Извиняюсь за тупые вопросы, но мне их необходимо задать, дабы в голове не было каши.
Заранее спасибо за ответы(которых, скорее всего, не будет)
 

Крампус

Green Team
09.12.2020
21
1
BIT
0
-Что за i8080 (понял, что это связано с процессором), но с чего начать и какой тип у современных процессоров intel
i8080 это древний 8и битный чип интел, про него не обязательно знать (если не пишешь загрузчик ОС)

-Знаю есть две битности винды(32 и 64) - что такое x64 и x86?

Есть 2 распространённые архитектуры десктопов, x86 (она же i386, или x32, или 32х-битный процессор) и x86_64 (она же AMD64 или x64 или 64х битный процессор). Ассемблер для них разный.

x86 отмирает, но ассемблер для неё ИМХО проще для обучения и восприятия. Эту архитектуру имеют компы от 386х (90е годы) до пентиумов 4 кажется. Для десктопов такие процы больше не делают, но во встроенных системах их ставят, в банкоматах, станках, бытовой технике и т.д.

x86_64 это современные десктоп и серверные процы интел и амд. Обратно совместима с x86! Поэтому 64х битный виндовс умеет выполнять 32х битные программы, но не наоборот. Поэтому же на современные компы можно поставить 32х битную ОС.

В общем если интересно хачить старые игрушки или изучать embedded системы, то учи x86. Если хачить современные проги, то x86_64.

-Что за 16,32,64 бит в ассемлере. Это вообще что и как мне это воспринимать?

Архитектуры интел они как матрёшки. Древние процы были 8и битными. Потом появились 16и битные. Но чтобы продолжать поддерживать старый софт надо было чтобы новый 16и битный проц имел 8и битный режим. Потом такая же история произошла с переходом 16 -> 32 -> 64. В итоге все современные процы интел поддерживают кучу режимов обратной совместимости. В этом всём нужно разбираться только если пишешь загрузчик ОС, саму ОС или драйвер работы с железом. Для начала обучения забудь всё это, выбери один режим, допустим "защищенный 32х битный" или "защищенный 64х битный", и учи только его. 99% программ для десктопов и серверов работают в одном из этих 2х режимов.

-Какие лучшие IDE есть для asm?

Не знаю. Пишу текстовый файл, собираю из командной строки, отлаживаю в gdb. Вообще на ассемблере редко что-то длинное пишется, обычно это вставка в Си-код, тогда используй любимый IDE.

-Какие книги стоит начать читать с нуля?

Не знаю. Я когда-то читал "как написать компьютерную игру на ассемблере", там очень краткий экскурс, в листингах ошибки, проги под дос, но в целом душевно. Сейчас она устарела ИМХО.

-О каких моментах стоит узнать при изучении?

Извиняюсь за тупые вопросы, но мне их необходимо задать, дабы в голове не было каши.
Заранее спасибо за ответы(которых, скорее всего, не будет)

Ну хз. Для изучения лучше иметь какую-то цель. Я прошарился, когда делал патч к досовской игрушке.
 

juliknevoruy

Green Team
19.09.2020
27
7
BIT
0
i8080 это древний 8и битный чип интел, про него не обязательно знать (если не пишешь загрузчик ОС)



Есть 2 распространённые архитектуры десктопов, x86 (она же i386, или x32, или 32х-битный процессор) и x86_64 (она же AMD64 или x64 или 64х битный процессор). Ассемблер для них разный.

x86 отмирает, но ассемблер для неё ИМХО проще для обучения и восприятия. Эту архитектуру имеют компы от 386х (90е годы) до пентиумов 4 кажется. Для десктопов такие процы больше не делают, но во встроенных системах их ставят, в банкоматах, станках, бытовой технике и т.д.

x86_64 это современные десктоп и серверные процы интел и амд. Обратно совместима с x86! Поэтому 64х битный виндовс умеет выполнять 32х битные программы, но не наоборот. Поэтому же на современные компы можно поставить 32х битную ОС.

В общем если интересно хачить старые игрушки или изучать embedded системы, то учи x86. Если хачить современные проги, то x86_64.



Архитектуры интел они как матрёшки. Древние процы были 8и битными. Потом появились 16и битные. Но чтобы продолжать поддерживать старый софт надо было чтобы новый 16и битный проц имел 8и битный режим. Потом такая же история произошла с переходом 16 -> 32 -> 64. В итоге все современные процы интел поддерживают кучу режимов обратной совместимости. В этом всём нужно разбираться только если пишешь загрузчик ОС, саму ОС или драйвер работы с железом. Для начала обучения забудь всё это, выбери один режим, допустим "защищенный 32х битный" или "защищенный 64х битный", и учи только его. 99% программ для десктопов и серверов работают в одном из этих 2х режимов.



Не знаю. Пишу текстовый файл, собираю из командной строки, отлаживаю в gdb. Вообще на ассемблере редко что-то длинное пишется, обычно это вставка в Си-код, тогда используй любимый IDE.



Не знаю. Я когда-то читал "как написать компьютерную игру на ассемблере", там очень краткий экскурс, в листингах ошибки, проги под дос, но в целом душевно. Сейчас она устарела ИМХО.



Ну хз. Для изучения лучше иметь какую-то цель. Я прошарился, когда делал патч к досовской игрушке.
Спасибо. Ты лучший!
 

Marylin

Mod.Assembler
Red Team
05.06.2019
298
1 321
BIT
172
@juliknevoruy первым делом нужно изучить модель системной памяти ОЗУ, а потом освоить отладчик. Он позволит воочию наблюдать, что именно каждая инструкция кладёт в регистры процессора, и куда попадает результат. Из отладчиков широким спросом пользуются OllyDbg, и x64Dbg - гугл знает, где их скачать. Из литературы для начинающих советую: Рудольф Марек - "Ассемблер на примерах". Он излагает понятно и предоставляет массу примеров.
 

juliknevoruy

Green Team
19.09.2020
27
7
BIT
0
@juliknevoruy первым делом нужно изучить модель системной памяти ОЗУ, а потом освоить отладчик. Он позволит воочию наблюдать, что именно каждая инструкция кладёт в регистры процессора, и куда попадает результат. Из отладчиков широким спросом пользуются OllyDbg, и x64Dbg - гугл знает, где их скачать. Из литературы для начинающих советую: Рудольф Марек - "Ассемблер на примерах". Он излагает понятно и предоставляет массу примеров.
Не ожидал увидеть тут такого солидного мужчину. Спасибо :)

Ваше светлость, я немного не понял про "модель системной памяти ОЗУ". Я попробовал это загуглить, но выдаёт как узнать какой DDR. Как правильно, мастер?
 
Последнее редактирование модератором:

Крампус

Green Team
09.12.2020
21
1
BIT
0
например достаточно подробное описание..
ИМХО зря путаешь парня, память в защищенном режиме это сплошной длинный массив. То, что под капотом она выделяется страницами и ремапится из физических адресов в виртуальные для изучения базового асма не важно.
 

Stiv76

Member
19.10.2020
9
0
BIT
0
Добрый день, ваше светлость. Примерно неделю назад в мой несозревший ум полезла гениальная идея - изучить ассемблер. Пробовал
начать с самой лёгкой книги "Ассемблер - это просто 2011г"(по крайней мере, так много где писали). Создаётся такое впечатление, что
я ребёнок, который попросил батю научить плавать и он меня сбрасывает с моста в реку. Я вообще ничего не понимаю, мне больно, я
страдаю, НО! я всё ещё хочу его учить(не спрашивайте зачем). Кто-нибудь из великих мудрецов ассемлера может помочь неопытному
падавану понять - КАК ВООБЩЕ ЕГО УЧИТЬ?
А также есть такие вопросы как:
-Что за i8080 (понял, что это связано с процессором), но с чего начать и какой тип у современных процессоров intel
-Знаю есть две битности винды(32 и 64) - что такое x64 и x86?
-Что за 16,32,64 бит в ассемлере. Это вообще что и как мне это воспринимать?
-Какие лучшие IDE есть для asm?
-Какие книги стоит начать читать с нуля?
-О каких моментах стоит узнать при изучении?

Извиняюсь за тупые вопросы, но мне их необходимо задать, дабы в голове не было каши.
Заранее спасибо за ответы(которых, скорее всего, не будет)
" ассемблер это просто " хорошая книга. Могу поделиться как сам делал. Взял старый ноут COMPAQ .Поставил XP . Нарыл в в нете проги предложенные автором. Всё это старьё вместе хорошо работает. А так как АСМ обращается к железу то можно себе напакостить по незнанию. С того места где начинается работа с отладчиком ,в торой раздел книги вроде ,станет понятно про память . Стек . Кучу. Там очень наглядно. Тогда вернуться в начло и перечитать . Будет легко усваиваться .А с начала не пытайтесь на все 100 въехать , о чем и автор сам пишет.
 

Marylin

Mod.Assembler
Red Team
05.06.2019
298
1 321
BIT
172
ИМХО зря путаешь парня
На мой взгляд, в любой области ставить надо перед собой глобальные задачи, иначе так и останешься на уровне джуна и "Hello World!". Хотя начинать самому сложновато, и нужен какой-нибудь наставник, чтобы подсказывал элементарные вещи. Из компиляторов советую выбрать , поскольку собирает экзе по одной клавише F9 (без батников), и имеет версии для линя. На хабре есть статья и отзывы о компилях - можно почитать.. Минус его - синтаксис не годится для вставок в сишку и требует незначительных правок.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!