Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   возможно ли освоить ассемблер , имея навыки веб программирования? (https://forum.antichat.xyz/showthread.php?t=75808)

Дикс 03.07.2008 10:28

возможно ли освоить ассемблер , имея навыки веб программирования?
 
здрасти
наткнулся тут на статейку
http://ru.wikibooks.org/wiki/Ассемблер_в_Linux_для_програм истов_C
скомпилил хело ворлд - всё вроде работает хорошо.

задался вопросом - если я знаю пхп, js и основы простого Си (год изучал в универе на заочке) - какова вероятность, что я могу, не изучая дальше Си, освоить ассемблер до того уровня, чтобы научиться писать демки?
я имею ввиду ту красивую абстракцию, программируемую на аппаратном уровне.
Или же мне всё равно стоит изучать дальше Си и сначала хорошо им овладеть, прежде чем лезть в ассемблер?

Delimiter 03.07.2008 11:06

ассемблер не имеет связи с Си , так что совершенно без разницы, кто сначала курица или яйцо.

Дикс 03.07.2008 11:17

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

Смогу ли я написать демку?

!_filin_! 03.07.2008 13:02

Да, асм некак не зависит от С, а то что ты привел это просто асмовая вставка. По поводу демок http://wasm.ru/publist.php?list=19 - это маны по опенгл и директиксу почитай, разберись. Если что-либо не понимаеш в коде, то подтяни асм ещё.
PS: Я например начинал изучать асм имея о С (++) лиш абстрактное понятие.

kakoy_nafig_nik 03.07.2008 13:09

Цитата:

там пишется, что его проще освоить, если уже имеешь хоть какие-то представления об архитектуре, изучив Си.
Там- это где? По моему источник не заслуживает доверия. Вообще, если ты знаешь принцип действия компиляторов и разбираешься в регистрах- бери книги-маны по нужному тебе языку и начинай с простейших задачек. Если будешь их щелкать, как орешки, то есть шанс что асм освоишь.

С/С++ имхо, знать для этого не обязательно

Dober'man 03.07.2008 13:27

!_filin_!
Цитата:

Сообщение от Delimiter
ассемблер не имеет связи с Си

Цитата:

Сообщение от !_filin_!
Да, асм некак не зависит от С

Причем тут зависимость?!?!?! Асм зависит только от наличия ПК...

Дикс 03.07.2008 13:29

спасибо за поддержку.
ещё не пробовал писать демки. на асме то ниче не писал.
просто хотел узнать, каковы шансы освоить его самому и не забить.
а то щас давно уже тока и слышу что асм самый сложный язык.
а я на обычном Си пишу с трудом

kakoy_nafig_nik 03.07.2008 13:39

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

0x22b 03.07.2008 13:47

Я тоже только начал учить асм, Си не требуется.. Асм совсем от всего отдельная тема и не с какими ЯП не пересекается, он сам по себе. Главное хорошо освоить строение памяти, процессора и вообще работу архитектуры.. Удачного изучения.

Анархист 03.07.2008 13:48

Цитата:

Сообщение от Дикс
а то щас давно уже тока и слышу что асм самый сложный язык.

[offtop]

Brainfuck никто не отменял...

[/offtop]

Jes 03.07.2008 14:41

Цитата:

Сообщение от Анархист
Brainfuck никто не отменял...

да , но как серьёзный язык он не неприемлем :)

Дикс 03.07.2008 14:56

что значит "взять асм для линуха и винды сразу"?
я вот взял пример из той вики:
PHP код:

.data                                   /* поместить следующее в сегмент данных         */

hello_str:                              /* наша строка                                  */
        
.string "Hello, world!\n"

                                        
/* длина строки                                 */
        
.set hello_str_length, . - hello_str 1

.text                                   /* поместить следующее в сегмент кода           */

.globl  main                            /* main -- глобальный символ, видимый
                                                   за пределами текущего файла          */
.type   main, @function                 /* main -- функция (а не данные)                */


main:
        
movl    $4, %eax                /* поместить номер системного вызова write = 4
                                           в регистр %eax                               */

        
movl    $1, %ebx                /* первый параметр -- в регистр %ebx;
                                           номер файлового дескриптора stdout -- 1      */

        
movl    $hello_str, %ecx        /* второй параметр -- в регистр %ecx;
                                           указатель на строку                          */

        
movl    $hello_str_length, %edx /* третий параметр -- в регистр %edx;
                                           длина строки                                 */

        
int     $0x80                   /* вызвать прерывание 0x80                      */

        
movl    $1, %eax                /* номер системного вызова exit -- 1            */
        
movl    $0, %ebx                /* передать 0 как значение параметра            */
        
int     $0x80                   /* вызвать exit(0)                              */

        
.size   main, .-main            /* 

скомпилил с помощью gcc и получил рабочую прогу в линуксе.
а чем надо компилить и как писать, чтобы получился экзешник и для винды и для линукса? (чувствую ща жуткую херню спорол =\)

Delimiter 03.07.2008 15:11

Никак!

... можно поступать как в джаве! Создается "песочница" внутри которой вызовы интерфейсных функций стандартизованы, назовем тех кто пишет код для песочницы ДИВЕЛОПЕРАМИ! А сама песочница соединена с системой стандартными функциями (в случае мастдая WinAPI) ! Тогда "песочные дивелоперы" могут писать код не думая о системе, главное чтоб добрые дяди установили песочницу на тех компах где будет работать проги песочных дивелоперов.

а иначе каждая ось представляет свой набор функций для работы с системой и подменять их трудоемко (как впрочем и не нужно из-за перегруженности кода)!


.... все это конечно лажа! Ведь с таким же успехом можно называть и php платформо независимым, раз код может исполняться и на линуксе с установленным php и на мастдае с установленным php!

ElteRUS 03.07.2008 15:24

Я бы посоветовал начинать учить ассемблер под конкретное семейство процессоров. Например IBM PC. Тогда основное что тебе понадобиться - это знание двоичной и шестнадцатеричной систем исчисления, а также архитектуры самого микропроцессора, его строение и принципов роботы на физическом и логическом уровнях. В универах это учат на 2 курсе =) Так ты сможешь понять почему код на ассемблере выглядит именно так, а не иначе и что именно этот код делает для получения желаемого результата. А уже после этого переходить на ОС и думать про то, как сделать что б работало на линукс\виндовс ... Хотя я понимаю, что сейчас очень модно кодить используя все готовое ('черные ящики'), но я не сторонник такого метода.

Вот хорошая книжечка http://librussian.info/lib_page_93567.html

Flame of Soul 03.07.2008 15:41

Цитата:

спасибо за поддержку.
ещё не пробовал писать демки. на асме то ниче не писал.
просто хотел узнать, каковы шансы освоить его самому и не забить.
а то щас давно уже тока и слышу что асм самый сложный язык.
а я на обычном Си пишу с трудом
пока незачто, чесно) и если освоишь и найдешь ля себя полезное поверь не забьешь на него хотя бы потому что "Ассемблер - это звучит", я изучала ассемблер даже непредставляя что такое Си (но я знала Паскаль!!!) только единственно что ненравится так это компиляторы)) в каждом есть свои причуды!!! Удачи! Против трудностей - есть Античат!

g0nd0n 03.07.2008 16:03

не нужно подходить к изучению ассемблера как к чему-то необходимому. я сам прошел через этот этап и могу сказать точно - важнее всего знать о компьютере его внутреннее устройство (раз мы тут ассемблер обсуждаем давайте я тоже до уровня сис. блока приземлюсь), здесь нужно подходить не с обратной стороны как автор темы. хотите изучить устройство компьютера? так изучайте! читайте книжки полезные. а вот ассемблер в итоге сам приложиться и в последствие поймете, что его доскональное изучение для нормального человека (не считая крутых системных разработчиков которым это действительно нужно) вещь, вообще говоря, бесполезная. ну конечно не считая хэкеров, крэкеров и прочего ширпотреба. еще раз хочу сделать акцент на следующей мысли уместной далеко не всегда - тут важно знать только КАК это работает, а не заниматься этим и тратить время впустую.

Flame of Soul 03.07.2008 16:07

Цитата:

хэкеров, крэкеров и прочего ширпотреба
ты еще реверсеров сюда прилепи и оправдаешь свой ник
что до*** чего лицензионного стоит? или ты на линуксе?

ПС: Модераторы простите за горячие высказывания но просто тупо день ппц

g0nd0n 03.07.2008 16:26

каких еще реверсеров? которые обитают здесь? несомненно, то чем они занимаются полная чушь. или ты считаешь копание с отладчиком умным и достойным занятием лишь для особо одаренных? человек с кучей свободного времени, которое он теряет на "развлечение" без намека на интеллектуальное развитие в моем представлении - бездельник. бездельники же никакой пользы не несут, и поэтому я без раздумия называю представителей подобного класса людей ширпотребом.
лицензионного ПО лично у меня, к сожалению, нет. но по мне об этом думать и благодарить кого-то так же нелепо, как каждый день, проходя по дороге кричать спасибо асфальто-укладчикам.

zythar 03.07.2008 16:38

кроме того что для разных процессоров разные ассемблеры, также для никсов и винды синтаксисы ассемблера немножко другие. так что ты определись под чем програмить будешь.

а собственно зачем тебе асм? просто ради интереса? если да то лучше наверное не начинать этим заниматься.

Flame of Soul 03.07.2008 16:44

каких еще реверсеров? которые обитают здесь?
- то есть пост выше говорит именно о людях которые обитают здесь? и где ты это написал?
- и с чего ты взял что кто то об этом будет громко кричать когда он обошел защиту мост вантед или фтп голд? думаешь ты один скромный?

Цитата:

человек с кучей свободного времени, которое он теряет на "развлечение" без намека на интеллектуальное развитие в моем представлении - бездельник.
Цитата:

или ты считаешь копание с отладчиком умным и достойным занятием лишь для особо одаренных
- копание с отладчиком и трата его свободного времени при этом ни тебя ни меня не касаются и я считаю когда человек сидит за Аидой или Олей - интелектуальной работой.
Цитата:

проходя по дороге кричать спасибо асфальто-укладчикам
- люди платят налоги, государство платит низкую зарплату тем кто его укладывает (хоть какие то но деньги) платили бы лучше - дороги были бы лучше. А 80 процентов взломанного софта построенно чисто на энтузиазме

z01b 03.07.2008 16:49

Цитата:

Сообщение от Flame of Soul
- копание с отладчиком и трата его свободного времени при этом ни тебя ни меня не касаются и я считаю когда человек сидит за Аидой или Олей - интелектуальной работой.

Может Идой? =) Ты ведь не читаешь Айнтерактив? =)

GlOFF 03.07.2008 16:52

Цитата:

возможно ли освоить ассемблер , имея навыки веб программирования?
Достаточно базового школьного образования!

Flame of Soul 03.07.2008 16:55

Сила привычки) просто нравится.
MySQL - сиквель.
Sun - сун (а это наверное из-за немецкого)

Возвращаясь к теме возможно ли освоить ассемблер , имея навыки веб программирования? - мой ответ да.

Kaimi 03.07.2008 17:01

Цитата:

Достаточно базового школьного образования!
Может и достаточно, но процесс изучения затянется надолго имхо...

Dober'man 03.07.2008 17:07

Цитата:

Сообщение от g0nd0n
каких еще реверсеров? которые обитают здесь? несомненно, то чем они занимаются полная чушь. или ты считаешь копание с отладчиком умным и достойным занятием лишь для особо одаренных? человек с кучей свободного времени, которое он теряет на "развлечение" без намека на интеллектуальное развитие в моем представлении - бездельник. бездельники же никакой пользы не несут, и поэтому я без раздумия называю представителей подобного класса людей ширпотребом.

Знаешь, тем кто не родился с компом в *опе приходится с чего-то начинать...
Вот тебе пример:
Я весь 6 и пол 7 класса проигрался с кубиком-рубиком...Ну согласись долбо***зм !!! А в 10 и 11 классах с меня всё пёрлись, когда я арифметические и геометрические прогрессии за пару секунд в уме считал (я в этом году закончил 11 класс), НО!!! Меня считали "ШИРПОТРЕБОМ" когда как даун возился с кубиком!!!
Если хочешь знать, то я тоже начинал с реверса и асма, и здал ЕГЭ по мат-ке на 98 баллов, а ЕГЭ по инф-ке на 96 баллов и мне прислали письмо из МФТИ с текстом о зачислении без экзаменов!!!

Дикс 03.07.2008 17:14

я ваще хочу для начала понять общий синтаксис ассемблера.
в большинстве языков очевидно - как определить переменную, как функцию, а тут для меня слишком много загадок пока.
меня вот эти загадки и подталкивают на его изучение )

hoty 03.07.2008 18:10

Сначала СИ потом Асм.
В универах так учат.
Сам сейчас буду Асм учить.

kakoy_nafig_nik 03.07.2008 18:43

А с чего вы взяли что если в универе так учат, то это правильно?

Дикс, попробуй покопаться в чужих прогах дизассемблером, если начнешь понимать язык.

0x22b 03.07.2008 21:02

Цитата:

Сообщение от hoty
Сначала СИ потом Асм.
В универах так учат.
Сам сейчас буду Асм учить.

Логика не верна.. В С столкнешся с указателями, если до этого учил асм, то понимание указателей будет на много четче и пройдет на порядок легче, нежели сначала изучив С а потом Асм. Лучши учить оба паралельно..

hoty 03.07.2008 22:09

to kakoy_nafig_nik :
Цитата:

Сообщение от kakoy_nafig_nik
А с чего вы взяли что если в универе так учат, то это правильно?

там преподают, сначала мат.анализ, дискретку, выч.мат и паскаль, а только потом СИ, и уж после этого Асм, php и базы данных.
думаю, они выбрали верный, ход, сначала развитие логики, понимание основ, а только потом сложные языки Ассемблер, php и базы данных.

to 0x22b :
Цитата:

Логика не верна.. В СИ столкнешся с указателями, если до этого учил асм, то понимание указателей будет на много четче и пройдет на порядок легче, нежели сначала изучив С а потом Асм. Лучши учить оба паралельно..
Может оно и так, но мое мнение сначала понимание основ (процедуры, функции, массивы и др), а потом сложные языки программирования. В данном случае с СИ и Ассемблер, сначала СИ потом Ассемблер. Не "пыхтеть" ведь над Ассемблером, ради указателей на СИ?))

to ТС :
Если отлично владеешь PHP и sql, то СИ, скорее не нужен, т.к. понимаешь элементарные основы программирования.

K07TyaN 03.07.2008 22:52

С и асм - совершенно разные вещи! Главное знать основы программирования (неважно какого языка) важна логика

а вообще я предпочитаю С + асм (inline assembler)

0x22b 04.07.2008 01:33

Цитата:

Сообщение от hoty
to 0x22b :

Может оно и так, но мое мнение сначала понимание основ (процедуры, функции, массивы и др), а потом сложные языки программирования. В данном случае с СИ и Ассемблер, сначала СИ потом Ассемблер. Не "пыхтеть" ведь над Ассемблером, ради указателей на СИ?))

Хех, опять логика не правильная в корне.. Ассемблер ради указателей учить спору нет не нужно, но если начать изучать ассемблер, то кроме указателей придет понимание еще очень многих вещей, просто очень многих.. По этому либо просто Си, либо Асм потом Си, либо паралельно. Можно и сначала Си а потом Асм, и сидеть с таким лицом: "Как же я раньше не стал читать книги по асму, все было бы на много понятнее".

Цитата:

Сообщение от hoty
to ТС :
Если отлично владеешь PHP и sql, то СИ, скорее не нужен, т.к. понимаешь элементарные основы программирования.

А ну конечно, зачем нужен Си если PHP есть.. Для основ программирования есесно хватит. Но Си и PHP совсем разные вещи и так говорить, по меньшей мере не грамотно..

Jes 04.07.2008 02:25

Цитата:

Сообщение от hoty
Если отлично владеешь PHP и sql, то СИ, скорее не нужен, т.к. понимаешь элементарные основы программирования.

абсолютно не согласен !

Речь идёт о высоком уровне (ооп) и низком...

Если вопрос звучал могу ли я научиться кодить на C# или Delphi(на уровне лего-компонентов) зная php , то да ...

Как раз Си (не С++ конечно) достаточно приближен к низкому уровню , чтобы хото частично понять основы...

от себя: я неплохо так знал C++ и достаточно хорошо С# , но изучние асма даже при наличии правильной литературы на первых этапах давалось относительно(!) тяжело , не потому что Асм сложный язык, а потому что я непонимал принципов нискоуровневого программирования в целом...
(архитектура , память , регистры , смещения , тип... )

вообще я до сих пор асм нормально не знаю ;)

hoty 04.07.2008 11:33

Т.к. люди с репутацией на форуме говорят - "Сначала СИ, потом Асм", то думаю ТС тебе так и нужно поступить.

Delimiter 04.07.2008 14:13

2 hoty

типа а мну не слушать??? 8)))))))))) Нука нука обьясните как вы репутацию связываете и с чем?

/// неужели обнаружили глубинную связь репутации и с СИ и с Ассемблером?


// тогда малиновые штаны тебе в руки и забирайся на верхнюю строчку ... и всем страждущим по одной КэЦэ раздавай

8)))

0x22b 04.07.2008 14:17

to hoty Посты пожалуста не повторяйте свои, а то можно и за флуд огрести по той самой репутации. Третий пост об одном и том же, уже на флуд смахивает.

hoty 04.07.2008 14:42

to Delimiter:
Цитата:

типа а мну не слушать??? 8))))))))))
хочется, чтобы меня слушали.
владею лишь Паскаль и СИ. сейчас надо Ассемблер учить. Поскольку знаю, что для Ассемблера нужны навыки основ программирования, то владея php (в моем случае СИ), можно начать изучение Ассемблера.
Т.к. ТС знает куда "копать" ), то считаю, Асм ему дастся, быстро.

Цитата:

Нука нука обьясните как вы репутацию связываете и с чем?
8)))
Как я понял репутация на форуме строго зависит от того, насколько полезную инфу выложил для пользователей (не флуд и общение, а программы, исходники, статьи, особненно если созданные своими мозгами).


Цитата:

/// неужели обнаружили глубинную связь репутации и с СИ и с Ассемблером?
Ну-уж не глубинную связь)) Если у участника форума большая репутация значит он делал полезные вещи на форуме (исходники, статьи). Соответственно, разбирается в языках программирования.

0x22b
Цитата:

Посты пожалуста не повторяйте свои, а то можно и за флуд огрести по той самой репутации. Третий пост об одном и том же, уже на флуд смахивает.
я прав "сначала php потом си), и Вы правы сначала Си потом Асм). Основы, то основы.
А слушать ТС думаю, будет тех у кого больше репутация - на подсознании больше доверия )).
Вот и написал: "слушай, тех у кого репутация выше".

Не вижу смысла накручивать большую репутация на форуме. Зачем она большая, если ничего не знаешь?)

Jes 04.07.2008 15:34

Delimiter по поводу репы абсолютно прав ...

опять же , я не писал учи си , потом Асм , я только пояснил , что есть вещи о которых программируя в ООП мы даже не задумываемся , а в асме эти вещи наоборот в большинстве случаев жизненно необходимы ...
---------------------
имхо:
Вообще Главное - Желание и стремление , кто сказал что не все языки одинаково полезны?)) ...
(всмысле хорошо знать их)

GlOFF 04.07.2008 22:23

Цитата:

возможно ли освоить ассемблер , имея навыки веб программирования?
Достаточно базового школьного образования! :)
Можно и без него, мат. склад ума. :)

Дикс 06.07.2008 16:51

Цитата:

а только потом сложные языки Ассемблер, php и базы данных.
сравнил )) с чего это пхп сложный язык? я его по книжке выучил дома

Цитата:

Может оно и так, но мое мнение сначала понимание основ (процедуры, функции, массивы и др), а потом сложные языки программирования.
я неплохо знаю пхп и основы Си. указатели, сортировки, структуры, деревья - уже изучал.
так что можно и асм начинать

Цитата:

но если начать изучать ассемблер, то кроме указателей придет понимание еще очень многих вещей, просто очень многих..
вот этого я и хочу. а что можно почитать про работу самого процессора? чтобы доступно. про его устройство. как ассемблер с ним "общается"?

Цитата:

Достаточно базового школьного образования!
Можно и без него, мат. склад ума.
склад ума у меня гуманитарный, я "пейсатель" :)
http://litprom.ru/list.phtml?userID=47546


Время: 00:49