Hello World на Ассемблере (x86)

Поделиться
HTML-код
  • Опубликовано: 24 янв 2025

Комментарии • 390

  • @PseudoDev
    @PseudoDev  4 года назад +136

    Ну что, как вам ролик?)

    • @bluxer4225
      @bluxer4225 4 года назад +1

      Класс.

    • @WHGM-f5z
      @WHGM-f5z 3 года назад +1

      Агонь

    • @Hlebopodobniy
      @Hlebopodobniy 3 года назад

      Понимаю, что эта тема может всем не зайти, но хотелось бы увидеть разбор языка в версии для DOS

    • @MightyMindsDev
      @MightyMindsDev 3 года назад

      Очень качественно. Не бросай канал

    • @umnikumnikov1338
      @umnikumnikov1338 3 года назад

      @@Hlebopodobniy ты конечно сказанул

  • @Satan-vf3ib
    @Satan-vf3ib 3 года назад +1657

    Ты понимаешь, что разговор будет серьёзным, когда видишь ролик «hello world» на 9 минут

    • @JafiP
      @JafiP Год назад +10

      АХАХАХАХАХА

    • @Sus-uh7ve
      @Sus-uh7ve Год назад +28

      Да нормально,учителя информатики вообще умудряются растянуть тему "создание переменных на Python" на целые 45 минут..

    • @dambanikita219
      @dambanikita219 Год назад

      ​как то страшно стало 😨

    • @alexLeach_
      @alexLeach_ Год назад

      Для ассемблера этого мало)

    • @R-C-D
      @R-C-D Год назад +2

      ​@@Sus-uh7ve правильно делают, если это в школе, школьникам нужно вбить теорию вголову, иначе никак

  • @maximterekhin6091
    @maximterekhin6091 Год назад +273

    Помню в 90-х ходил в компьютерный клуб: поиграть, покодить простые программы на Бейсике. И там был один человек, который мог программировать на ассемблере, в том числе игры, которые на Бейсике уже не напишешь. Он даже пытался объяснить мне свой код, до сих пор помню фразу "И вот тут я обнулил Аш Эль" Я надеюсь, он стал высококлассным программистом...

    • @iharnomad7747
      @iharnomad7747 Год назад +34

      не, он хакнул пентагон и сейчас сидит в алькатрасе

    • @ilhanilhanDev
      @ilhanilhanDev Год назад +34

      Программить на компьютерном клубе, вот что меня напугало.

    • @trays1377
      @trays1377 Год назад +6

      @@ilhanilhanDev ну да, программить сидя на клубе, а не в нем это страшно, можно даже упасть если потерять равновесие.

    • @sergeyb2823
      @sergeyb2823 Год назад

      Аш Эль, это он на Z80 что ли программировал на спектруме? Так это ерунда, там всё просто было, и архитектура у компьютера простая понятная была и команд не очень много, все можно было легко запомнить.

    • @michael_voitovich
      @michael_voitovich Год назад +5

      Если HL, то этот чувак программировал для процессора Z80, который стоял в ZX-Spectrum. HL это не один регистр, а два 8-битных. В i8086 такого уже не было, потому что он был 16-битный.

  • @enli123
    @enli123 Год назад +126

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

    • @katastroff6011
      @katastroff6011 Год назад +1

      Реально

    • @katastroff6011
      @katastroff6011 Год назад +1

      С это ещё добрый язык для людей

    • @katastroff6011
      @katastroff6011 Год назад +1

      А вот ты попробуй в Майнкрафте x86 архитектуру воссоздать

  • @pavelg9855
    @pavelg9855 3 года назад +359

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

    • @АнтониоПанотти
      @АнтониоПанотти Год назад +35

      Ключевое слово "почти"

    • @maximleo1904
      @maximleo1904 Год назад +10

      Это только хелоу ворлд)

    • @KiraYoshikage555
      @KiraYoshikage555 Год назад

      @@maximleo1904 я чела видел который на ассемблере тетрис написал

    • @yankeemustdie-4159
      @yankeemustdie-4159 Год назад

      Ууу, я на паскале игру симулятор вообще в 15 строк уместил.

    • @petr07413
      @petr07413 10 месяцев назад

      ​@@yankeemustdie-4159 какую?

  • @de6358
    @de6358 3 года назад +141

    Мама забери меня, мне страшно

  • @vuitlik5449
    @vuitlik5449 2 года назад +154

    На заметку: инфы по ассемблеру мало на великомогучем, а вот на английском - вполне достаточно.

    • @aki7162
      @aki7162 2 года назад +18

      Это касается не только ассемблера

    • @SkannerKaijy
      @SkannerKaijy 2 года назад +9

      @Seomastertop надо сделать компилятор для двоичного кода, всё остальное оскорбляет дух машины

    • @MrDlop
      @MrDlop Год назад

      Ravesly сайт, там есть

    • @sir-Jiga
      @sir-Jiga 9 месяцев назад +1

      ​@@SkannerKaijy, Компилятор для двоичного кода не нужен)

  • @SanyaBelyi
    @SanyaBelyi Год назад +161

    Помните, что все популярные языки программирования, были написаны на ассемблере, так сказать "Это база" и те, кто умеет ею обращаться, они реально боги, те кто пише на питоне, они крепостные крестьяне

    • @slavaandreev1494
      @slavaandreev1494 Год назад +6

      Языки на си пишутся, разве нет?

    • @slavaandreev1494
      @slavaandreev1494 Год назад +6

      Точнее даже не языки, а компиляторы и интерпретаторы

    • @krempay4ik371
      @krempay4ik371 Год назад

      ​@@slavaandreev1494и то и другое написано на си и плюсах, увы

    • @qwertererer9029
      @qwertererer9029 Год назад

      ​@@slavaandreev1494а си на чем написан? На ассемблере

    • @anon_commentator
      @anon_commentator Год назад +26

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

  • @Eben__-ex1zm
    @Eben__-ex1zm 3 года назад +120

    Знакомый - сеньор : начни учить программирование с ASSамблера
    Я смотря как написать "хэллоу ворлд": Пиздец...

    • @mega_retard777
      @mega_retard777 3 года назад +21

      Нет, ассемблер наилучший вариант для новичка. Да, после ассемблера всё будет даваться легче, а также будет понимание работы компьютера. Что я вообще говорю? После изучения ассемблера можно будет писать под любой микроконтроллер или написать компилятор или интерпретатор под собственный язык!

    • @Nebrituy
      @Nebrituy 3 года назад +17

      @@mega_retard777 можно, а смысл? Зачем создаются высокоуровневые языки программирования? Почему они становятся популярными, а ФОРТРАН и АССемблер нет? ВРЕМЯ?!! Пока ты выучишь язык, напишешь на нем мало-мальски толковую программу, любой старшеклассник уже успеет такую прогу сваять раз 20.

    • @matescha649
      @matescha649 3 года назад +2

      Думаю лучше начать с Phyton, он лёгкий и если его выучить то такие языки как с++, джава, и т.д. будут даваться легко.

    • @PseudoDev
      @PseudoDev  3 года назад +8

      Не совсем согласен. Вообще нужно отталкиваться от того: "а что ты будешь разрабатывать?"
      Но если брать общую температуру по палате, то лучше и вправду начать с Си образных языков, т.к. их архитектура самая шаблонная для большинства ЯП. Про Python уже такое не скажешь.
      Upd: крч, надо будет сделать видос на эту тему, уж очень она занимательная 😁

    • @Eben__-ex1zm
      @Eben__-ex1zm 3 года назад +34

      Прошло 7 месяцев. Я забил на карьеру прогера и пошел на завод. Держу в курсе )

  • @hollidey148
    @hollidey148 3 года назад +70

    Я один, с каждым новым вопросом автора, ждал ответ "х*й его знает"?

  • @mishafurru
    @mishafurru Год назад +10

    Мне, как человеку знающий Python3.12 и изучающий C++, было АБСОЛЮТНО понятно, о чем шла речь. И я совсем не устроил суицид после этого видео.

  • @AndrewT-e6f
    @AndrewT-e6f Год назад +50

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

    • @critical-ren-fan-corner
      @critical-ren-fan-corner Год назад +1

      А Джон Кармак на асме вершил одну революцию в видеоигровой индустрии за другой.

    • @Fifasher2K
      @Fifasher2K Год назад

      И не удивительно.

    • @Maxim9575
      @Maxim9575 Год назад

      @@critical-ren-fan-corner что за сказки, исходный код его движков это С

    • @ІванМамонтов
      @ІванМамонтов Год назад +1

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

    • @AndrewT-e6f
      @AndrewT-e6f Год назад

      @@ІванМамонтов В теории это может и так, вот только вряд ли ты будешь писать супер идеально оптимизированный код (лучше чем оптимизирует его компилятор)

  • @Zargarov
    @Zargarov 2 года назад +22

    Из всех вариантов выбрали самый извращённый - асм под эмулятором линукса на винде. Сэр знает толк в извращениях.

    • @YuraSamusenko
      @YuraSamusenko 2 года назад +13

      Если виндовс еще и в virtualbox, тогда вообще шик

    • @seekyboi23
      @seekyboi23 2 года назад +1

      Это не эмулятор

    • @RaptorT1V
      @RaptorT1V Год назад

      ​@@YuraSamusenkoахахаха у меня именно такой случай

  • @Петрович-в4щ
    @Петрович-в4щ Год назад +3

    когда увидел ролик о hello world на 9 минут: ваша душа теряет решимость, ведь теперь вы боитесь ассемблер

  • @XzencarsZ
    @XzencarsZ Год назад +28

    Кстати интересный факт:
    Большинство фундамента БИОС написаны на ASM
    И лишь малая часть на C (UEFI)

    • @stikmango2.032
      @stikmango2.032 Год назад +7

      Впринципе логично, так как непосредственно с железками работаем

    • @ryanf6840
      @ryanf6840 Год назад

      А с учётом компиляции то все

  • @MsTim159
    @MsTim159 3 года назад +66

    Советую всем интересующимся поиграть в TIS-100 и на этом закончить знакомство с ассемблером.

  • @I-find-John-Titor
    @I-find-John-Titor 2 года назад +8

    Спасибо! Многие моменты стали понятны, продолжайте делать ещё видео про язык ассемблера

  • @SergMirny_yt
    @SergMirny_yt 3 года назад +37

    Скажите а где найти урок - ассемблер за 5 минут? А то у меня собес на асм разработчика через 10 минут.
    Да и ещё вопрос - как выйти из vi?

    • @PseudoDev
      @PseudoDev  3 года назад +37

      Могу за тебя свечку в церкви поставить)

    • @SergMirny_yt
      @SergMirny_yt 3 года назад +6

      @@PseudoDev если за здравие - тогда ок 😁

    • @PseudoDev
      @PseudoDev  3 года назад +3

      (Дополнение и изменённому комменту):
      Погодь, Vi или Vim 🙃? Если Vim, то сперва нужно сохранить текст ":w (тут указываешь название, если этого ещё не делал)", а потом просто выходишь командой ":q"
      Можно ещё сделать всё за одну команду ":wq", так будет быстрее)

    • @SergMirny_yt
      @SergMirny_yt 3 года назад +2

      @@PseudoDev спасибо. Это шутка конечно. Я не помню точно, т.к. не пользуюсь ни ви ни вим. Но я выходил м помощью :wq, если не ошибаюсь. Я тоже программист любитель-самоучка пишу на pyqt ну и чистом пайтоне. Есть пет-проджект программки для хобби (для радиолюбителей) linuxlog.su - сайтик пректа. И пользуюсь пайчармом, т.к. использую его плюшки

    • @ПетрФролов-е6г
      @ПетрФролов-е6г 3 года назад

      У Гоши Дударя)

  • @1968.5
    @1968.5 2 года назад +8

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

  • @spoongemine3555
    @spoongemine3555 5 месяцев назад +3

    Python:
    Скорость выполнения кода - 💀☠️
    Скорость написания кода🥰
    Ассемблер:
    Скорость написания кода💀
    Скорость выполнения кода🥰🥰

  • @animath2662
    @animath2662 3 года назад +14

    Метка -- просто число, чаще всего адрес... Никакая это не функция. Метку уж скорее и можно сравнить с переменными. При компиляции она просто заменяется на число.

    • @hlibprishchepov322
      @hlibprishchepov322 2 года назад

      А разве обычные прыжки и прыжки в операциях сравнения не по разному работают?

  • @MikhailGoncharov-tl4cr
    @MikhailGoncharov-tl4cr 11 месяцев назад

    Великолепный обзор. У тебя талант.

  • @hedgegod8644
    @hedgegod8644 Год назад +8

    Подожди, байт либо от 0 до 255, либо от -128 до 127

    • @Rusakoz
      @Rusakoz Год назад

      Все верно

  • @ApXucBuH
    @ApXucBuH Месяц назад

    4:20 Падажжи. Как один байт может отображать числа от -127 ДО 255, если один бит из восьми отходит как раз для обозначения знака минус? Это уже девятибитовая переменная получается?

    • @PseudoDev
      @PseudoDev  Месяц назад +1

      @@ApXucBuH мы сами определяем будет ли этот байт знаковый или без знаковый. Если он знаковый, то это конечно диапазон от -128 до +127. Если мы не учитываем знак, то от 0 до +255. Так как в данном случае мы говорим про константу, то весь диапазон у нас от -128 до +255

    • @iliyak469
      @iliyak469 7 дней назад

      ​@@PseudoDev а точно, + весь Ассемблер не типизированный(то есть мы букву сможем прочитать, как число)😅

  • @ДиванныеВойска-о2ю
    @ДиванныеВойска-о2ю 3 года назад +20

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

  • @andrewgrad7681
    @andrewgrad7681 11 месяцев назад +1

    Автор ролика по поводу инфы для ассемблера не прав, просто искать не хотел. А кому интересно тот найдёт. На том же Авито или барахолке почти любого города можно попробовать найти старые книги про ассемблер. И лет 10 назад с этим вообще никаких проблем не было😂 кому интересно, лично в моем распоряжении есть книга: "Программирование на языке ассемблера для персональной ЭВМ фирмы IBM" за авторством Д. Брэдли.

  • @ockuepie
    @ockuepie 4 года назад +3

    Ты выпустил видос🥳🥳🥳. Думал не доживу, если честно

  • @criterrors
    @criterrors Год назад +19

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

    • @critical-ren-fan-corner
      @critical-ren-fan-corner Год назад

      Но только большая часть этой литературы написана во времена DOS или Windows XP.

    • @yuzeless
      @yuzeless Год назад

      ​@@critical-ren-fan-corner думаешь ассемблер сильно изменился?

    • @critical-ren-fan-corner
      @critical-ren-fan-corner Год назад

      @@yuzeless асм не изменился, а ОС, поверх которой работает программа, радикально изменилась.

    • @yuzeless
      @yuzeless Год назад +1

      @@critical-ren-fan-corner при чем тут ОС? Ассемблер работает с инструкциями процессора, хоть и через прослойку виртуализации. Ни архитектура процессоров, ни ассемблер не изменились

    • @euginekosenko2268
      @euginekosenko2268 Год назад

      ​@@yuzelessтам до херища постоянно меняется. Лично я сломался после vliw, и это было ещё до 64 разрядов...

  • @nikgghul
    @nikgghul Год назад +2

    Я в ассемблере неплохо шарил.до 20- и лет.а потом : работа,семья.некагдо стало.ща 43 .всё надеюсь время будет

  • @nombreapellido9851
    @nombreapellido9851 Год назад +3

    Более ранний ассемблер до появления ПК.
    HELLO CSECT
    STM 14,12,12 (13)
    LR 12,1
    BALR 11,0
    USING *,11
    LA 15, SAVE
    ST 15,8 (13)
    ST 13,4 (15)
    LR 13,15
    WTO 'Hello World'
    L 13,4 (13)
    XC 8 (4,13), 8 (13)
    LM 14,12,12 (13)
    SR 15,15
    BR 14
    SAVE DS 18F
    END HELLO
    Вызов программы
    //PROG JOB (FIO),CLASS=A,MSGLEVEL=(0,0)
    //STEP EXEC PGM=HELLO
    //
    Кстати, до сих пор используется даже по прошествии более полувека.
    Возможно немножко напутал, но суть не менятся: сохранили регистры, назначали базовый регистр, вывели сообщение, возратили прежние значения регистров, обнулили код возврата, выход из программы, а в конце поле для сохранения регистров.

  • @ushid_brand
    @ushid_brand 4 года назад +14

    Го топ самых необычных языков программирования (там какие нибудь Chiken и ёптаскрипт)

    • @PseudoDev
      @PseudoDev  4 года назад +3

      А почему бы и нет)
      Я вас услышал

    • @Драго-в9с
      @Драго-в9с 3 года назад +2

      ёптаскрипт вроде компилирует в js, не?

    • @pain.6766
      @pain.6766 3 года назад

      @@Драго-в9с ёптаскрипт это просто куча дефайнов, нет?

    • @Manzz2
      @Manzz2 3 года назад

      @@pain.6766 а чё

    • @pain.6766
      @pain.6766 3 года назад

      @@Manzz2 ?

  • @jhakfresko8151
    @jhakfresko8151 2 года назад +2

    А что идёт ещё ниже чем ассемблер? Ведь слова-команлы (mov,rdx....) тоже както создали.
    Я не программист но стало интересно.

    • @nailocore185
      @nailocore185 2 года назад +17

      ассемблер это не совсем язык, это семейство мнемоник, где за короткими словами типа mov стоят прямые инструкции процессору. Компилятор транслирует мнемоники, немного упрощая жизнь программисту тем, что позволяет за той же мнемоникой mov спрятать несколько разных инструкций, предназначенных для переноса данных из разных типов операндов. Или позволяет написать макрос, который можно подставлять в определенное место программы, чтобы 100 раз не писать одно и то же и тд. Отвечая на вопрос что ниже ассемблера - писать код прямыми инструкциями процессора. И первое что ты так напишешь - простейший компилятор ассемблера, чтобы сэкономить время для написания более сложного компилятора :)

    • @I-find-John-Titor
      @I-find-John-Titor 2 года назад

      1011011011101101100111101101011110110100011101111011011101111011011101...

    • @Oktoberkun
      @Oktoberkun 2 года назад

      Ниже только перфокарты.)

    • @YuraSamusenko
      @YuraSamusenko 2 года назад +2

      @@Oktoberkun Еще ниже переключатели для задания последовательности битов

    • @yankeemustdie-4159
      @yankeemustdie-4159 Год назад

      @Mr-Phokus а дальше механика.

  • @daytanminecraft327
    @daytanminecraft327 9 месяцев назад

    Это язык от которого чувствуешь физическую боль.

  • @YuriSalmanov
    @YuriSalmanov Год назад +3

    Я тот самый 100-летний препод из МФТИ. Задавайте вопросы

    • @yankeemustdie-4159
      @yankeemustdie-4159 Год назад

      Есть ли жизнь на Марсе?

    • @anton__k
      @anton__k Год назад +4

      вы своё столетие в какой системе счисления отмечали?

    • @lordskynet4403
      @lordskynet4403 Год назад +1

      @@anton__k😁

  • @PianoElipse
    @PianoElipse 3 года назад +5

    так ошибочка (4:20), не 255 (так как все значения в db, исключая ноль), а +127

    • @PseudoDev
      @PseudoDev  3 года назад +3

      байты со знаком в диапазоне от -128 до +127; беззнаковые байтовые значения в диапазоне от 0 до 255

    • @PianoElipse
      @PianoElipse 3 года назад +4

      @@PseudoDev тогда зочим такой странный диапазон указывать?

    • @PseudoDev
      @PseudoDev  3 года назад +2

      Но ведь мы можем указывать числа в этом диапазоне?)
      А вот почему он такой странный... Ассемблер 🙃

    • @PianoElipse
      @PianoElipse 3 года назад +6

      @@PseudoDev Многие говорят, что асямбля ломает мозг, как раз наоборот, он его структурирует. И по этому я только на нем и пишу. Ну а так можно было бы разграничить эти два диапозона, а то с самого начала новечкам мозг не хочется домать :д

    • @niyazleushkin
      @niyazleushkin 3 года назад +2

      @@PianoElipse хмм. Не осуждаю, но странный выбор, как основного языка программирования:)
      Как минимум из-за громоскости кода допустим для написания программы, которая перемножает многомерные матрицы, отделяя и сортируя числа по эквивалентности. Написать подобное на си, ну или на том же python(тут все решается подключением одной библиотеки) не составит труда, а вот на ассемблере ты потратишь не менее 500 строк кода в лучшем случае, написав пару "модулей" на том же ассемблере, формируя тот же самый "си", но под свои нужды.
      Да, с тобой я полностью солидарен, что ассемблер структурирует мозг, порой после многих часов в IDA, я начинаю мыслить и делать все так же последовательно, а сверстники не могут понять, что со мной сегодня опять не так(гуманитарные предметы сразу же отходят на второй план, из-за невозможности нормально мыслить). Однако надо знать грань между одним и другим. Если нужна МАКСИМАЛЬНАЯ производительность, то стоит присмотреться к чистому си, без библиотек(некоторые библиотеки, написанные криворукими, могут выполняться по 1000 тактов на простое действие, которое можно было выполнить за 100 тактов), он ПРАКТИЧЕСКИ равносилен коду на ассемблере написанному от руки, ибо компиляторы нынче намного умнее, чем в те же 2000-ные и умеют оптимизировать в разы лучше, чем может написать человек.

  • @d17-d7e
    @d17-d7e 3 года назад +18

    Панч в сторону питона за панчем. 😂

    • @No_name_music
      @No_name_music 3 года назад +1

      Мне кажется что питон мало чем от английского отличается. Помойка обыкновенная.

    • @php1036
      @php1036 3 года назад +9

      @@No_name_music да, согласен, настоящие языки программирования должны быть на русском!

    • @ДиванныеВойска-о2ю
      @ДиванныеВойска-о2ю 3 года назад +1

      @@php1036 Есть же НЛП которые продвигают могучие инфоцигане, деньги им то несут значит программирование рабочее

    • @digital0cean
      @digital0cean 3 года назад

      @@php1036 1C

  • @vas_._sfer6157
    @vas_._sfer6157 3 года назад +10

    Python не компилируется в ASM. С - не низкоуровневый.
    Программа на ASM не выдает ошибку компиляции.

    • @niyazleushkin
      @niyazleushkin 3 года назад +1

      При компиляции: *мусор после выражения*
      *мусор*
      после компиляции не верно написанного кода: *ошибка сегментации*

    • @noname-wn9xk
      @noname-wn9xk 3 года назад

      C - низкоуровневый

    • @vas_._sfer6157
      @vas_._sfer6157 3 года назад

      @@noname-wn9xk C - язык программирования высокого уровня. ASM - язык программирования низкого уровня, так как существует в рамках конкретной аппаратной платформы.
      И Python тоже язык программирования высокого уровня.

    • @unerr-w2v
      @unerr-w2v Год назад

      @@vas_._sfer6157, если С ставить вместе с ассемблером, то да, С - самый, самый, САМЫЙ высокоуровневый. Для меня сейчас С - очень даже высокоуровневый. А для тех, кто пишет на Python, Javascript и т.д., он низкоуровневый, так как там есть прямое обращение к памяти, вернее манипуляция с памятью, а в высокоуровневых нет

  • @itsvoron6081
    @itsvoron6081 11 месяцев назад

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

  • @raal8438
    @raal8438 Год назад +1

    Дружище!!! как приятно слушать человека который точно знает о чем говорит! Классс"
    .... но счастье было так близко! так возможно ))) все что ты пишешь на экране наверно своего дисплея, все в черной темноте" бывает видно только когда ты выделяешь фрагмент,так что кода этой супер программы я так и не увидел" Неужели только я? непонятно, щас гляну что другие пишут

  • @danilegovich
    @danilegovich 2 года назад +1

    Пайтон же интерпретируемый язык программирования, а не компилируемый

  • @hardmakertv6048
    @hardmakertv6048 2 года назад +1

    я что-то не понял. В названии х86, а использует х64 регистры (rax, rbx....) или я что-то не понимаю?

    • @YuraSamusenko
      @YuraSamusenko 2 года назад

      Изначально появилась архитектура x86, которая вообще была 16-битной. Потом ее апгрейднули до 32 бит, новую архиткектуру назвали IA-32. А когда апгрейднули до 64 бит, для отличия стали называть x86_64, но сокращенно все эти архитектуры могут называть просто x86

  • @softgame379
    @softgame379 2 года назад +2

    Вот создаю ос на c и asm и ты мне очень помог

    • @PseudoDev
      @PseudoDev  2 года назад +2

      Правда? Офигенно! Очень приятно слышать, спасибо 🙂

  • @Aspadien
    @Aspadien 3 месяца назад

    Не знаю почему но вместо _start у меня принимает только main

  • @nakidai
    @nakidai 2 года назад +1

    Чее то я нифига не понял, разве имена секций не в начале стоят?

    • @YuraSamusenko
      @YuraSamusenko 2 года назад

      Да и строку под меткой message надо было бы в секцию .data, как и код под меткой _start в секцию .text, а он слегка хуй знает как указал эти секции

  • @Push0RET
    @Push0RET 10 месяцев назад

    Привет, видео прикольное, но над ним действительно только посмеяться(о чем ты указал в начале видео). Если интересно для будущих роликов могу тебе накидать инфы по ASM, могу даже чему то научить твоих подписчиков(через тебя естественно), если хочешь напиши мне. Кстати ты пишешь не на ASM x86, а на ASM x64. Регистры с припиской R (RAX, RDX, RDI и т.д.), это 64-разрядные регистры, они есть у процессоров архитектуры x64, в архитектуре x86 регистры 32-разрядные (EAX, EBX, ECX и т.д.).

  • @ДиректорДурки-д6е
    @ДиректорДурки-д6е 3 года назад +2

    А можешь сделать видео про GNU ассемблер(не обязательно Hello world!)

  • @АккаунтдляЮтуба-р2м

    Топ 1 язык программирования для новичка:

  • @DmitriyUV
    @DmitriyUV Год назад +2

    Это же код вроде под x64 и при компиляции ты формат указывал elf64. На x86 я помню вообще делают с помощью int прерываний. Когда-то я немного учил ассемблер под DOS 😄

    • @килбос99
      @килбос99 Год назад

      тык х86 включают в себя 32-битные и 64-битные процессоры..
      х86 можно сравнивать только с arm процессорами (получили огрумную популярность в мобилках) и может ещё с какими, если есть, НО никак не с 32-64 (потому что армы тоже бывают 32-64-битные)

    • @DmitriyUV
      @DmitriyUV Год назад

      @@килбос99 так у x64 регистры по другому называются ведь или я что-то путаю

  • @lanikanani
    @lanikanani 11 месяцев назад

    Вопрос: как у тебя в 1 байт влезло столько значений от -128 до 255?
    Всего 256 значений

    • @PseudoDev
      @PseudoDev  11 месяцев назад +1

      Это константное значение, в котором мы можем определить знаковый ли этот байт или беззнаковый. Логично, что если у нас есть знак, что мы резервируем первый бит под знак, и диапазон у нас от -128 до +127. Но мыж можем определить его и без знака, тогда диапазон у нас от 0 до 255

  • @Va1b0rt
    @Va1b0rt 8 месяцев назад

    На метаните есть курсы по ассемблерам.

  • @NickY_Msk
    @NickY_Msk Год назад +1

    Байт может принимать значения от -128 до 127, а не 255

    • @mhalaider6046
      @mhalaider6046 Год назад

      unsinged byte будет принимать значения от 0 - 255. Все операции в компьютере выполняется в 16-ричной системе счисления и, если ты не знал, но отрицательное значение в данной системе существует как бы очень большим числом. А все регистры принимают только unsigned значения.

    • @Гычпук
      @Гычпук Год назад

      ​@@mhalaider6046шестнадцатеричная используется из-за ее удобного представления, чем двоичной или десятичной

    • @mhalaider6046
      @mhalaider6046 Год назад

      @@Гычпук логично, а к чему это ?

  • @CoderingMojangDev
    @CoderingMojangDev Год назад +1

    msg1:
    db "Hello", 10
    msg2:
    db "Hi", 10
    _start:
    mov rax, 1
    mov rdi, 1
    mov rsi, msg1
    mov rdx, 5
    mov rsi, msg2
    mov rdx, 2
    syscall
    mov rax, 60
    syscall
    section .data
    global _start
    section .text

  • @anton__k
    @anton__k Год назад

    6:45 - почему вдруг строка "Hello World!" с символом перевода имеет длину 14 байтов (mov rdx, 14)?! 13 же! В этой программе такая неточность некритична (возможно, там нули из-за выравнивания), но вообще на экране может появиться "мусор".

    • @H336-p1v
      @H336-p1v Год назад

      Мб он ещё null terminator учёл (нулевой байт \0 в конце строки)

    • @anton__k
      @anton__k Год назад

      @@H336-p1v, а где там нулевой байт? Это ж не C/C++, где все строки автоматически заканчиваются нулём. Ассемблер всё "понимает" буквально.
      Я думаю, этот фрагмент позаимстовавали из другой обучалки, где была запятая между словами, и там 14 было бы правильной длиной.

  • @staf5496
    @staf5496 Год назад +1

    Даже вывести одну букву на середину экрана и заставить мигать - это тонна текста

  • @АнатолийКрымский-х5ъ

    Извините, а Вы можете решить обратную задачу??

  • @finimensniper3322
    @finimensniper3322 2 года назад +2

    Я который отлично знаю с# и изучаю python: А что так можно было))?

  • @tomskiy6514
    @tomskiy6514 3 года назад +10

    После просмотра данного видео появилось желание повеситься.
    Автору вагон конфет и цистерну чая😊

  • @ЯсусБебра
    @ЯсусБебра Год назад

    Лицо питонистов представили?

  • @PianoElipse
    @PianoElipse 3 года назад +2

    А если по нашему mov приёмник, источник, но можно и так :)

  • @1982Crazik
    @1982Crazik Год назад +3

    Давайте по хардкору, змейка на ассемблере

    • @kingmang_it
      @kingmang_it Год назад +3

      На гитхабе уже повторяли 100 раз

  • @Иван-ъ2ы4б
    @Иван-ъ2ы4б Год назад +1

    А вот если придумать нейронку которая будет шпарить код на асемблере и можно написать програму для контретного устройства проца и памяти озу например но вот большинство процов закрытые за исключение arm и risc v

  • @jiz842
    @jiz842 3 года назад +1

    привет первокурсникам итмо, почему ничего не понятно?

  • @luckyway3823
    @luckyway3823 Год назад +1

    На 1 курсе мфти (хотя я физик) был ассемблер, это был ужас.

  • @CRITICALHITRU
    @CRITICALHITRU Год назад

    Хорошее видео для людей, кто в детстве и юности кукарекали про потенциал кончолей и что оптимизацией игр под железо устаревшая на релизе лепёшка с вентилятором будет тянуть новинки минимум 8 лет.

  • @apple1
    @apple1 Год назад +1

    Также питон: print(‘hello world’)

    • @Что_такое_псевдоним
      @Что_такое_псевдоним Год назад +1

      Также питон:*прошло десять дней* hello world
      Ты допустил ошибку

    • @WormXchannel
      @WormXchannel Год назад

      C++: нужно сделать отдельный блок🤓
      Python:всего лишь одна строка

    • @euginekosenko2268
      @euginekosenko2268 Год назад

      Также HQ9+: H

    • @euginekosenko2268
      @euginekosenko2268 Год назад

      ​​@@WormXchannelHQ9+: всего лишь один символ.

  • @subaruvalit5931
    @subaruvalit5931 Год назад

    Только мне показалось что у автора какой то фреймворк похожий на asm ? И сама теория весьма запутано рассказана...

  • @GamePlayShare
    @GamePlayShare 3 года назад +3

    Нужно было запилить под ДОС

  • @1234MB
    @1234MB Год назад +2

    А я только ассемблер и знаю🤣🙃
    Вроде чётко все объяснил...

  • @13hubassembly59
    @13hubassembly59 2 года назад +4

    можно же просто сделать:
    msg db "Hi"
    len equ $ - msg ;Сколько тут байтов
    section .text
    _start:
    mov rax, 4 ;Аккумулятор sys_write
    mov rbx, 1 ;База stdout
    mov rcx, msg ;Счетчик msg
    mov rdx, len ;Размер байтов этого msg
    syscall
    mov rax, 1
    syscall
    И всё

    • @thezzzzzz
      @thezzzzzz Год назад +2

      Вопрос нахуя так делать когда можно просто
      Print('Hello World!')

    • @euginekosenko2268
      @euginekosenko2268 Год назад

      @@thezzzzzz можно ещё проще, H

  • @BearUnderCheese
    @BearUnderCheese 2 года назад +1

    Ирония в том, что я знал все термины, которые звучали в видео... Как будто на программирование у меня не ушло 4 года...
    PS: Питонисты перевернулись в гробу.

  • @wolteron494
    @wolteron494 3 месяца назад

    ассемблер это примерно как твое тело без сознания. Посылать миллионы сигналов нейронов и регулировать значения их интенсивности нужно вручную чтобы просто пернуть

  • @juicetree
    @juicetree 3 года назад +3

    Страшный сон питониста

  • @thefikus1275
    @thefikus1275 3 года назад +1

    Есть сиалетний преподаватель?

  • @riancholli9456
    @riancholli9456 2 года назад +4

    Тем временем питон: print(‘Hello World’)

    • @anton__k
      @anton__k Год назад +1

      Самое короткое - на shell-языке (и не надо дополнительно ничего устанавливать в систему): echo Hello World

    • @AXSMEBEL
      @AXSMEBEL Год назад

      ​@@anton__kмне кажется или шелл это не язык, а echo вполне себе самостоятельная программа, которая в виде бинарника лежит себе на диске?

    • @euginekosenko2268
      @euginekosenko2268 Год назад

      Тем временем HQ9+: H

    • @anton__k
      @anton__k Год назад

      @@AXSMEBEL , возможно, зависит от реализации оболочки, но в Windows и Linux echo - это команда оболочки. Хотя в Linux и есть бинарник /bin/echo, в скриптах echo обрабатывается как встроенная команда.

    • @AXSMEBEL
      @AXSMEBEL Год назад

      @@anton__k если вы выполните в линуксе команду `which echo`, то внезапно увидите путь к бинарному файлу (скорее всего в /usr/bin)

  • @alexandrtsvetkov7715
    @alexandrtsvetkov7715 2 года назад +3

    К вашему сведению, Си не является низкоуровневым ЯП. Это высокоуровневый ЯП с элементами низкоуровневого.

    • @CRITICALHITRU
      @CRITICALHITRU Год назад

      Элементы низкоуровневости позволяют точнее объяснить задачу компьютеру, тем самым делая более оптимизированный код?

    • @alexandrtsvetkov7715
      @alexandrtsvetkov7715 Год назад +1

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

  • @thenikehiro5278
    @thenikehiro5278 Год назад +1

    А теперь го не ассемблер, а сразу машинный код царапать на жестком диске

  • @MurtiEvma
    @MurtiEvma 2 месяца назад

    Относительно Mac OS. Очень смешно пытаться написать hello world на ассемблере по гайду с ютуба от чела который пишет на консоли линукса с консоли мака. Мне буквально пришлось читать документацию к ассемблеру чтоб понять какого хрена вообще происходит. Если вы вдруг опустились в комментарии потому что у вас тоже мак и вы не можете понять че происходит, то во-первых посмотрите какая архитектура у вашего процессора и введите команду nasm -h , и там в разделе -f будет нужная вам команда для компиляции кода на вашей архитектуре процессора. А во вторых вам придется переписать код из за того, что системные вызовы на линуксе и на маке разные

  • @PTGScompanyMS
    @PTGScompanyMS Год назад +1

    Вижу, ты смотришь комментарии)
    В общем, хочу начать учить ASSемблер. Инфы в инете не найти, курсы быстро забрасываются, мало что объясняют, как вообще кодить на этом всём...
    Хочу выучить низкоуровневый язык или даже несколько, чтоб с нуля написать ос без интерфейса по типу DOS. Знаю, что сложно, но я готов к такому.
    В общем, подскажи, если сможешь, с чего можно этот проклятый язык изучать? По нему рил инфы не найти, как будто он мёртвым грузом лежит (хотя возможно так и есть, все же щас на высокоуровневых сидят)

    • @PseudoDev
      @PseudoDev  Год назад +1

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

    • @Pavel.Maslennikov
      @Pavel.Maslennikov Год назад +1

      На сайтах вряд ли найдешь полный курс. Его обычно из книг преподают. Так что ищи, читай)

    • @PTGScompanyMS
      @PTGScompanyMS Год назад +1

      @@Pavel.Maslennikov спасибо

    • @d_art_s9632
      @d_art_s9632 Год назад +1

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

    • @yankeemustdie-4159
      @yankeemustdie-4159 Год назад +1

      проблема скорее всего в том, что производители процессоров неохотно делятся списками инструкций для своих процессоров. Если люди начнут сами себе ОС писать это же какой рынок рухнет. Правда в РФ его итак не было никогда )))

  • @ТабачныйКапитан

    Когда вижу как печатают голубым по чёрному задаюсь вопросом - А гуманоид ли перед нами?? Или красным по чёрному. Короче я знаю как вычислять пришельцев с Нибиру. И не благодарите! ))

  • @putman77
    @putman77 Год назад +4

    Инфы по асму полно. И байт может принять значения от минус 127 до 128, а не 256. Но спасибо, доля правды в ролике есть.

    • @raal8438
      @raal8438 Год назад +1

      неправильно! не знаешь" садись - два! )))
      Байт может принимать значения в диапазоне 00h .. FFh или 0 .. 255
      а целое вещественное число в байте это то что ты нарисовал )))

    • @putman77
      @putman77 Год назад +4

      @@raal8438 Вы невнимательно смотрели ролик.
      На 4-й минуте говорится о том, что байт может принимать значения от -128 до +255 вот ссылка - ruclips.net/video/00-hcWc7_fA/видео.html
      Именно это я и имел в виду. И да будет Вам известно, что не только от 0 до 255 байт бывает, но и от -127 до +128, даже от -10 до +245, тут нет ограничений, это ассемблер. Каким захотите, таким и будет этот байт.
      В ролике много ошибок, как то - С++ является по словам автора низкоуровневым.
      Но смотреть приятно, вспоминают настоящие языки еще =)
      Всем добра.

    • @CRITICALHITRU
      @CRITICALHITRU Год назад

      @@putman77 С++ по уровню такой же как С?

    • @mishafurru
      @mishafurru Год назад

      Ну вот смотри, и на Питоне, и Си++ можно: делать сайты, делать игры (2д и 3д), делать вычесления, страдать фигнёй, создавать нейронки, делать программы для ~роботов~ (ну типа языка Arduino). Отличия: Питон - лёгкий язык, но медленный, НО ЕСЛИ ЮЗАТЬ НУМБУ, ТО ПИТОН КАК СИ++ БУДЕТ ПО СКОРОСТИ!) Си++ - сложный язык, но быстрый изначально. Также, Си++ ОЧЕНЬ МЕГА СУПЕР ДУПЕР ПУПЕР МЕГА ТУПЕР ГИБКИЙ. Поэтому он ну ооочень сложный. Хотя по функциональности они примерно одинаковые. Но Си++ использует Анреал Энжин, а Питон юзает сам себя, так что... Да ваще насрать, изучай обы языка, их вообще совмещать можно, скачиваешь Cython и кайфуешь ат жизни нахер!!!!

    • @doodocina
      @doodocina Год назад +1

      @@putman77ну, от -10 до 245 это конечно бред) -127 - +128 это результат использования дополнительного кода числа, вида представления отрицательных чисел

  • @ТихонКотов-д9з
    @ТихонКотов-д9з 2 года назад

    ты крутой чел я твой фанат

  • @css3971
    @css3971 Год назад

    Также пайтонисты: print("Hello, World!")

  • @samboru997
    @samboru997 3 года назад

    Сделай подробное видео как установить ассемблер пж! Мне нравится этот язык, помогиииии

    • @ViRuS889
      @ViRuS889 2 года назад +1

      Надеюсь это просто шутка, а не реальный вопрос

    • @yankeemustdie-4159
      @yankeemustdie-4159 Год назад

      Коротким получится, видео, там надо-то в командной строке написать дебуг и нажать энтер )))

  • @panda19751
    @panda19751 Год назад +1

    Чувак учи мат часть!!!!!!!!! Python не является компилируемым языком программирования - это интерпретатор. Паскаль - да. Это классика, а Python блин нееет!!!

  • @aimem6315
    @aimem6315 2 года назад +1

    Почему запустить код сложнее чем её написать, это язык мазохистов

  • @Tokel-X
    @Tokel-X Год назад +5

    Python не переводится в машинный код, он исполняется интерпретатором

  • @Anaprilin1
    @Anaprilin1 Год назад

    это конечно ассемблер, только всю работу сделала операционка

  • @АлексейШевченко-ч2ц

    Не братан, нет здесь прфесоров из МФТИ...

  • @mangrogred
    @mangrogred 2 года назад +2

    вот менее костыльная версия на NASM с output через биос (тоесть это можно записать на диск вместо ос):
    [org 0x7C00]
    [bits 16]
    mov ah,0x0E
    start:
    mov bx,message
    call print
    print:
    pusha
    printloop:
    mov al,[bx]
    cmp al,0
    je end_print
    int 0x10
    inc bx
    jmp printloop
    end_print:
    popa
    ret
    message db "Hallo!",0
    times 510-($-$$) db 0
    dw 0xAA55

    • @mangrogred
      @mangrogred 2 года назад +3

      А и ещё, я ассемблер использую только для bootload или других низкоуровневых приколов а так я пишу на c
      ПРОШУ ЗАМЕТИТЬ НЕ НА C++ А НА C ЭТО РАЗНЫЕ ВЕЩИ!

    • @hlibprishchepov322
      @hlibprishchepov322 2 года назад +2

      @@mangrogred понимаю, как я не гуглю си, мне вечно подсовывают с++

  • @МихаилМальцев-и9в
    @МихаилМальцев-и9в 2 года назад +2

    когда хотел написать hello world но создал код по призванию дьявола

  • @Блин-Наш
    @Блин-Наш 2 года назад +1

    4:12 Да уж, программер еще тот... "для зап инф-и исп-ют 1 байт, это число от -127 до 255"
    капец просто...

    • @PseudoDev
      @PseudoDev  2 года назад +2

      Не вижу противоречий.
      Честно, я уже не помню всех нюансов (видео давно вышло), но 8 бит мы можем представить как значение с резервацией под знак в первом бите, или без него. Если со знаком, то диапазон у нас от -127 до 128. А если без знака то от 0 до 255.
      Вопросы?

    • @Блин-Наш
      @Блин-Наш 2 года назад +1

      @@PseudoDev да хрен с ним с тем байтом, люди смотрят и ладно.. Не принципиально... Это все равно что зоолог сказал бы "у слона пять конечностей, на четырех он ходит, а пятый - хобот, болтается без дела, пока тот не решит им сорвать грушу с дерева или окатить себя водой и реки"...

  • @p.k.r.7963
    @p.k.r.7963 3 года назад

    Python не заточен на компиляцию он интерпритируемый язык программирования

    • @p.k.r.7963
      @p.k.r.7963 2 года назад +1

      @Анонимус 228 ну уж теперь всё встало на свои места

    • @euginekosenko2268
      @euginekosenko2268 Год назад

      Школота так и не освоила магию jit :-)))

  • @alter.007
    @alter.007 11 месяцев назад

    Я понимаю, зачем это студентам, которым это надо сдавать. Я понимаю, зачем это крутым системным программистам, которые сопрягают ОС, девайсы, пишут драйверы, компиляторы и т.д. Я не понимаю, зачем это 99,98% обычных программистов, которые и разрабатывают примерно 100% обычного софта... Ну, кроме понимания сути процессов, но ведь для этого достаточно самых-самых основ...

    • @PseudoDev
      @PseudoDev  11 месяцев назад

      А это здорово тренирует мозг мыслить алгоритмами. Чисто для примера: у нас в вузе мы проходили ассемблер на кр580, в котором, не то чтобы возведения в степень, даже банального умножения нет. И тебе приходиться подробно прорабатывать алгоритм решения задачи в ограниченных условиях

  • @Dark-bu4sf
    @Dark-bu4sf 3 года назад +2

    Kotlin, python и JavaScript - Это не не компилируемые языки программирования!

    • @itzhellcod3r-developer609
      @itzhellcod3r-developer609 3 года назад

      нет

    • @YuraSamusenko
      @YuraSamusenko 2 года назад

      Kotlin компилируется в байт-код для jvm. JS может как интерпретироваться, так и компилироваться при запуске(компиляция JIT(just in time)). Python в целом да, интерпретируется, но есть библиотеки, которые позволяют при запуске компилировать определенные фрагменты кода(полезно, когда эти самые фрагменты работают медленнее всего)

  • @user-qc9dr9tg5d
    @user-qc9dr9tg5d 11 месяцев назад

    Ассемблер создан для кирпичей и картошки

  • @sslem-t5k
    @sslem-t5k 11 месяцев назад +1

    Запомните детишки: самый низкоуровневый язык - это перфокарты.

  • @GUranium75
    @GUranium75 3 года назад +1

    Кхм.. Питон не компилируется

  • @Boris-uh6kf
    @Boris-uh6kf 2 месяца назад

    Даже Brainfuck не такой страшный...

  • @rinatpro-q1r
    @rinatpro-q1r 3 месяца назад

    У меня голова от c++ ломается а тут asm какойта

  • @DedSec77
    @DedSec77 3 года назад +1

    А если я не ошибаюсь python интерпритируемый язык программирования

    • @niyazleushkin
      @niyazleushkin 3 года назад +2

      Верно:)
      Но, в принципе, можно собрать "ехешник", только вот он будет громоздким, весить минимум 2мб(интерпретатор будет кочевать с программой в PE формате)