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

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Дикс, 3 Jul 2008.

  1. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    здрасти
    наткнулся тут на статейку
    http://ru.wikibooks.org/wiki/Ассемблер_в_Linux_для_программистов_C
    скомпилил хело ворлд - всё вроде работает хорошо.

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

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    ассемблер не имеет связи с Си , так что совершенно без разницы, кто сначала курица или яйцо.
     
  3. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    там пишется, что его проще освоить, если уже имеешь хоть какие-то представления об архитектуре, изучив Си.
    а я тока знаю как в Си память выделить под переменную, как указатели делать на эту память. С процессором вообще не знаком. Сейчас впервые прочитал про регистры.

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

    !_filin_! Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    86
    Likes Received:
    40
    Reputations:
    16
    Да, асм некак не зависит от С, а то что ты привел это просто асмовая вставка. По поводу демок http://wasm.ru/publist.php?list=19 - это маны по опенгл и директиксу почитай, разберись. Если что-либо не понимаеш в коде, то подтяни асм ещё.
    PS: Я например начинал изучать асм имея о С (++) лиш абстрактное понятие.
     
  5. kakoy_nafig_nik

    Joined:
    30 Jun 2008
    Messages:
    15
    Likes Received:
    5
    Reputations:
    0
    Там- это где? По моему источник не заслуживает доверия. Вообще, если ты знаешь принцип действия компиляторов и разбираешься в регистрах- бери книги-маны по нужному тебе языку и начинай с простейших задачек. Если будешь их щелкать, как орешки, то есть шанс что асм освоишь.

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

    Dober'man Banned

    Joined:
    16 Jul 2007
    Messages:
    70
    Likes Received:
    94
    Reputations:
    -8
    !_filin_!
    Причем тут зависимость?!?!?! Асм зависит только от наличия ПК...
     
  7. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    спасибо за поддержку.
    ещё не пробовал писать демки. на асме то ниче не писал.
    просто хотел узнать, каковы шансы освоить его самому и не забить.
    а то щас давно уже тока и слышу что асм самый сложный язык.
    а я на обычном Си пишу с трудом
     
  8. kakoy_nafig_nik

    Joined:
    30 Jun 2008
    Messages:
    15
    Likes Received:
    5
    Reputations:
    0
    Я бы порекомендовал взять для себя асм, реализация которого есть и в винде, и в линуксе. Так можно избежать путаницы в синтаксисе- ведь тот же безусловный переход в разных асмах пишется по-разному.
     
  9. 0x22b

    0x22b Elder - Старейшина

    Joined:
    1 Dec 2007
    Messages:
    114
    Likes Received:
    32
    Reputations:
    9
    Я тоже только начал учить асм, Си не требуется.. Асм совсем от всего отдельная тема и не с какими ЯП не пересекается, он сам по себе. Главное хорошо освоить строение памяти, процессора и вообще работу архитектуры.. Удачного изучения.
     
  10. Анархист

    Анархист Elder - Старейшина

    Joined:
    23 Mar 2008
    Messages:
    45
    Likes Received:
    13
    Reputations:
    0
    [offtop]

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

    [/offtop]
     
  11. Jes

    Jes Elder - Старейшина

    Joined:
    16 Apr 2007
    Messages:
    370
    Likes Received:
    391
    Reputations:
    34
    да , но как серьёзный язык он не неприемлем :)
     
    2 people like this.
  12. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    что значит "взять асм для линуха и винды сразу"?
    я вот взял пример из той вики:
    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 и получил рабочую прогу в линуксе.
    а чем надо компилить и как писать, чтобы получился экзешник и для винды и для линукса? (чувствую ща жуткую херню спорол =\)
     
  13. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    Никак!

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

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


    .... все это конечно лажа! Ведь с таким же успехом можно называть и php платформо независимым, раз код может исполняться и на линуксе с установленным php и на мастдае с установленным php!
     
    #13 Delimiter, 3 Jul 2008
    Last edited: 3 Jul 2008
  14. ElteRUS

    ElteRUS Elder - Старейшина

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

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

    Flame of Soul Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    185
    Likes Received:
    146
    Reputations:
    45
    пока незачто, чесно) и если освоишь и найдешь ля себя полезное поверь не забьешь на него хотя бы потому что "Ассемблер - это звучит", я изучала ассемблер даже непредставляя что такое Си (но я знала Паскаль!!!) только единственно что ненравится так это компиляторы)) в каждом есть свои причуды!!! Удачи! Против трудностей - есть Античат!
     
  16. g0nd0n

    g0nd0n New Member

    Joined:
    2 Jul 2008
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    не нужно подходить к изучению ассемблера как к чему-то необходимому. я сам прошел через этот этап и могу сказать точно - важнее всего знать о компьютере его внутреннее устройство (раз мы тут ассемблер обсуждаем давайте я тоже до уровня сис. блока приземлюсь), здесь нужно подходить не с обратной стороны как автор темы. хотите изучить устройство компьютера? так изучайте! читайте книжки полезные. а вот ассемблер в итоге сам приложиться и в последствие поймете, что его доскональное изучение для нормального человека (не считая крутых системных разработчиков которым это действительно нужно) вещь, вообще говоря, бесполезная. ну конечно не считая хэкеров, крэкеров и прочего ширпотреба. еще раз хочу сделать акцент на следующей мысли уместной далеко не всегда - тут важно знать только КАК это работает, а не заниматься этим и тратить время впустую.
     
  17. Flame of Soul

    Flame of Soul Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    185
    Likes Received:
    146
    Reputations:
    45
    ты еще реверсеров сюда прилепи и оправдаешь свой ник
    что до*** чего лицензионного стоит? или ты на линуксе?

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

    g0nd0n New Member

    Joined:
    2 Jul 2008
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    каких еще реверсеров? которые обитают здесь? несомненно, то чем они занимаются полная чушь. или ты считаешь копание с отладчиком умным и достойным занятием лишь для особо одаренных? человек с кучей свободного времени, которое он теряет на "развлечение" без намека на интеллектуальное развитие в моем представлении - бездельник. бездельники же никакой пользы не несут, и поэтому я без раздумия называю представителей подобного класса людей ширпотребом.
    лицензионного ПО лично у меня, к сожалению, нет. но по мне об этом думать и благодарить кого-то так же нелепо, как каждый день, проходя по дороге кричать спасибо асфальто-укладчикам.
     
  19. zythar

    zythar Elder - Старейшина

    Joined:
    16 Feb 2008
    Messages:
    517
    Likes Received:
    109
    Reputations:
    5
    кроме того что для разных процессоров разные ассемблеры, также для никсов и винды синтаксисы ассемблера немножко другие. так что ты определись под чем програмить будешь.

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

    Flame of Soul Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    185
    Likes Received:
    146
    Reputations:
    45
    каких еще реверсеров? которые обитают здесь?
    - то есть пост выше говорит именно о людях которые обитают здесь? и где ты это написал?
    - и с чего ты взял что кто то об этом будет громко кричать когда он обошел защиту мост вантед или фтп голд? думаешь ты один скромный?

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