Asm для JS программиста: Введение

แชร์
ฝัง
  • เผยแพร่เมื่อ 9 ม.ค. 2025

ความคิดเห็น • 58

  • @vladyslavfereira6931
    @vladyslavfereira6931 5 หลายเดือนก่อน +8

    огромное, от всей души, спасибо! такого рода источника информации просто нет! поправляйся!)

  • @vladburko9238
    @vladburko9238 5 หลายเดือนก่อน +3

    00:00:00 Музыка
    00:03:00 Вступление
    00:09:45 С чего начнем
    00:09:25 Что нужно чтобы повторить
    00:14:00 Технический перерыв
    00:18:20 Продолжение - Что нужно чтобы повторить
    00:20:20 Что такое язык ассемблера
    00:23:00 Пишем первую простую программу используя машинный код
    00:23:50 Технический перерыв
    00:24:15 Продолжение - Пишем первую простую программу используя машинный код
    00:36:00 Пишем программу под bios
    00:44:45 Про системы исчисления в современных электронных вычислительных машинах
    01:04:30 Завершаем стрим

  • @ВикторХотченков-ф4э
    @ВикторХотченков-ф4э 5 หลายเดือนก่อน +3

    Поправляйтесь! Очень хорошая и понятная подача материала, ждём новых видео

  • @maksimgurbanov8372
    @maksimgurbanov8372 5 หลายเดือนก่อน +2

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

  • @yennms5547
    @yennms5547 5 หลายเดือนก่อน +1

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

  • @northwest569
    @northwest569 5 หลายเดือนก่อน +1

    Здоровья, старый!

  • @godzilla8772
    @godzilla8772 27 วันที่ผ่านมา

    5:33 У кого в доме больше одного кота тот понимает что коты не только мыслят но и разговаривают хвостом выписывая им иероглифы, голос для них - как для нас эмодзи.

  • @theiconicity
    @theiconicity 5 หลายเดือนก่อน

    Супер доступно! Не проходите мимо!

  • @Linguaexpress
    @Linguaexpress 4 หลายเดือนก่อน

    Автор мой вдохновитель

  • @KopoLPedov
    @KopoLPedov 5 หลายเดือนก่อน +1

    Браво, маэстро!

  • @yevhensluchynskyi8509
    @yevhensluchynskyi8509 5 หลายเดือนก่อน +6

    Кому все еще не понятно, интересно и вы любите поиграть, советую игрушку Turing Complete. Очень упрощает порог вхождения.

  • @oswi__
    @oswi__ 5 หลายเดือนก่อน

    Какой же кот хороший, каждый раз радует глаз

  • @musicharry1204
    @musicharry1204 5 หลายเดือนก่อน

    54:57 Вау, доска!!! Навыки стримлинга всё лучше и лучше...

  • @vladostema
    @vladostema 5 หลายเดือนก่อน +3

    Мурыч живи

  • @stanmarsh9458
    @stanmarsh9458 5 หลายเดือนก่อน +4

    Регистр BP означает "Base Pointer"

  • @AndNan
    @AndNan 5 หลายเดือนก่อน

    Молодец что вандама позвал на стрим. Вандам и Демимур сила

    • @menceyh
      @menceyh 3 หลายเดือนก่อน

      Вандам это кто?

    • @AndNan
      @AndNan 3 หลายเดือนก่อน

      @@menceyh собеседник Мурычв

  • @narek7281
    @narek7281 4 หลายเดือนก่อน

    great video

  • @thismarketiing
    @thismarketiing 5 หลายเดือนก่อน

    SI - это Source Index
    BP - это Base Pointer, указатель на кадр стека.

  • @NikitaLipovich
    @NikitaLipovich 5 หลายเดือนก่อน +1

    продолжение будет?

  • @proletarian
    @proletarian 5 หลายเดือนก่อน

    Начало 5:42

  • @godzilla8772
    @godzilla8772 27 วันที่ผ่านมา

    57:47 Аккумулятор, база, счетчик, данные. Как то подозрительно не знать основы и писать вирусы.

  • @zakirovio
    @zakirovio 4 หลายเดือนก่อน

    будет ли у вас разбор гидры?

  • @Ukuraina-cs6su
    @Ukuraina-cs6su 3 หลายเดือนก่อน

    щось я аж приздивувався коли пан почав писати 16ковим кодом 😀

  • @frstnmlstnm-it1mf
    @frstnmlstnm-it1mf 5 หลายเดือนก่อน

    Максим спасибо за видео, здоровья Вам. Пока только один вопрос - кот, который был показан вначале он байт, машинный или пока ещё javascript?

  • @Safr93
    @Safr93 5 หลายเดือนก่อน

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

  • @qulinxao
    @qulinxao 5 หลายเดือนก่อน

    а про WebAssembly есть|будет чё?

  • @ssurrokk
    @ssurrokk 5 หลายเดือนก่อน

  • @rwrddlr7449
    @rwrddlr7449 5 หลายเดือนก่อน +1

    Assembler для javascript разработчика так же нужен как Bootstrap C++ разработчику..
    Я как плюсовик за 6 лет коммерческого опыта не столкнулся с задачей где нужен был ассемблер, что говорить о js разработчиках.

    • @qulinxao
      @qulinxao 5 หลายเดือนก่อน

      ремесло тем и отличается от RnD :)

  • @Евгений_Николаевич
    @Евгений_Николаевич 5 หลายเดือนก่อน +1

    Кот любит сметану ;)

    • @demimurych1
      @demimurych1 5 หลายเดือนก่อน

      єтот не любит.
      єтот любит МЯСО

    • @oswi__
      @oswi__ 5 หลายเดือนก่อน

      ​@@demimurych1базированый кот

  • @MrAirrussia
    @MrAirrussia 5 หลายเดือนก่อน +4

    Максим, держись там, в плане здоровья, я тебя прекрасно понимаю.
    Относительно ASM для JS прогеров, ты ведь понимаешь, что это 0.1% от всех JS вообще понимают, что ты тут рассказываешь?
    Хотя ASM для DOS вроде сейчас входит в стандартный курс программирования, хотя хз как сейчас, когда я учился у нас был в рамках Pascal.
    На сколько практичным будет изучение байт-кода, очень сомнительные перспективы, потому, что сегодня она так, завтра поменяли, что-то в среде, будет по другому.
    Даже в рамках образовательной, тоже такое занятие на любителя, копаться в байтах. С точки зрения реверс инженерии, может быть, когда совсем уже других способов не осталось.

    • @3wtfreero446
      @3wtfreero446 5 หลายเดือนก่อน

      Конечно, но здесь ведь обитает своя флора, которой это интересно.
      ты хочешь, чтобы мурыч стал кем? хаудихо?

    • @MrAirrussia
      @MrAirrussia 5 หลายเดือนก่อน

      @@3wtfreero446 нет конечно, мурыча контент и интересен тем, что он мурыч.

    • @michaelsopunov
      @michaelsopunov 3 หลายเดือนก่อน

      "Если вы понимаете ассемблер, то любая скомпилированная программа для вас - open source!" 😂😂

  • @Sahar90KB
    @Sahar90KB 5 หลายเดือนก่อน

    How can withdraw USDT to binance account using only these words "head isolate sound end kit industry choice festival limit stable dolphin derive"?

  • @romanfedun577
    @romanfedun577 5 หลายเดือนก่อน

    кіт схожий на Мурича )))

  • @cafedead
    @cafedead 5 หลายเดือนก่อน +2

    Регистр IP забыли. Регистр флагов забыли. Эти важны. SI - Source Index. Ну и я бы все-таки регистры переменными не называл даже для упрощения, ибо потом у людей начнется путаница, когда начнете им объяснять, что переменные - это ячейки памяти. Регистры - это железные операционные ячейки процессора, в которые он откуда-то грузит данные, как-то их обрабатывает, и потом из них куда-то кладет результат. Все-таки, обучаться этому легче на более простом процессоре, нежели 8086. На мой взгляд, 8080 или Z80 - идеальнейшие варианты. В 8086 много уже предсказуемого развития, которое, тем не менее, отвлекает внимание от сути.

    • @demimurych1
      @demimurych1 5 หลายเดือนก่อน +1

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

    • @cafedead
      @cafedead 5 หลายเดือนก่อน +1

      @@demimurych1 я вам говорю о том, что ваше объяснение регистров для людей непонятное, которое введет их в заблуждение в будущем. Разумеется, вы можете простейшие программы писать так, что у них не будет никакого результата, который не надо будет никуда выводить, но это будет скорее частный случай, потому что вы описали поведение зависшей программы, не подающей признаков жизни во вне. Поэтому да, обычно существует необходимость писать из регистров куда-то в память или устройство ввода/вывода, чтобы в работе процессора был какой-то смысл для нас. Поэтому регистры - это операционные ячейки, в которых вы оперируете данными, их конкретное количество, у многих из них конкретное назначение. А ваше объяснение, в т.ч. о том, что "имена к ним прибиты", помешает правильному восприятию регистров, некоторые из которых могут быть легко переименованы внутренними триггерами. Это механика из даже более старого Z80.
      Что касается регистра IP, то вы внезапно пишете в него напрямую, когда прыгаете jp или call на какой-то адрес, или когда совершаете возврат из процедуры. ret, по сути, можно было бы переименовать в какой-нибудь _pop ip,_ а _jmp addr_ - в _mov ip, addr,_ или _add ip, disp,_ если у нас относительный переход. Я упростил, поэтому без сегментных регистров. Да, мнемоника придумана другая, но суть действия с регистром ровно та же. Мнемоника - это просто мнемоника, понятное обозначение машинных кодов для человека, как вы сами совершенно правильно и сказали. Т.е. в принципе это обычный регистр, с той только разницей, что он постоянно инкрементируется, и что по адресу, на который он указывает, из памяти вычитываются инструкции, или их части, которые затем выполняются. Поэтому его часто называют программным счетчиком, чем он и является. Ну опять же согласитесь, сложно его "коробочкой" назвать с такими его свойствами. Сильно умная коробочка получается с прибитым к ней счетчиком.
      Инструкция Int nn - это тоже не само прерывание, а всего лишь аналог инструкции call с чтением адреса из памяти по смещению. Просто используется механизм векторов прерываний процессора для вызова функций DOS, потому что так через таблицу удобнее публично делиться адресами интерфейсов - обработчиков исполнителей служб dos и bios, есть короткая инструкция int nn. Если бы этого механизма в данном процессоре не было, использовался бы обычный call адрес, и ничего бы не поменялось. Прерывание - это немного другое, это когда из-вне происходит воздействие на процессор, вынуждающее его выполнить обработчик нужного прерывания в случайный для процессора момент времени, прервав выполнение вашей программы, а не когда вы в коде int nn написали. Ну еще генерацию процессором прерываний самому себе в связи с трассировкой инструкций, или в связи с выполнением неподдерживаемой инструкции можно за уши притянуть, но это тоже уже такое себе, опять же тут просто задействован механизм векторов прерываний, реального прерывания не было, лишь его имитация для удобной обработки особой ситуации.

    • @cafedead
      @cafedead 5 หลายเดือนก่อน +1

      ​​@@demimurych1 и в javascript, когда называют переменные "коробочками", имеют в виду структуры в памяти, имеющие адрес. А вот процессор может загрузить и содержать в своем регистре значение такой "коробочки", или адрес ячейки памяти (указатель на "коробочку"). Грубо говоря, регистры - это его руки, вот он может брать в свои руки значения из коробок, т.е. или из памяти с адресом, или из устройств ввода/вывода с адресом, что-то с ними делать, считая буквально на пальцах этих своих рук (АЛУ), и по завершению вычислений класть посчитанное в эти или другие коробки, чтобы мы увидели результат - либо в память с адресом, либо в устройство с адресом, которые ничего подобного со своими значениями делать не умеют. Ну хотя, устройства может быть и умеют, на то они и устройства. Вы реально этими своими "коробочками" и "переменными" запутаете людей.

  • @ПавелЕгоров-у5т
    @ПавелЕгоров-у5т 5 หลายเดือนก่อน

    А что это за созвоны? В них можно участвовать?

    • @demimurych1
      @demimurych1 5 หลายเดือนก่อน +1

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

  • @ВладиславГришин-ш7ш
    @ВладиславГришин-ш7ш 5 หลายเดือนก่อน

    нахрен 60 кадров? асм не нужен, но 60 кадров зачем

  • @aleksandrm3466
    @aleksandrm3466 5 หลายเดือนก่อน

    Надеюсь ничего серьезного с здоровьем? Выздаравливай.

  • @localhost666
    @localhost666 5 หลายเดือนก่อน

    О, леший снова из берлоги вылез 😂

  • @Nixguy
    @Nixguy 5 หลายเดือนก่อน

    Windows богомерзкий, Linux православный. А что делать, если ты атеист?

    • @ld2848
      @ld2848 4 หลายเดือนก่อน

      по остаточному принципу, либо фряха либо макОС

  • @serhioramires3166
    @serhioramires3166 5 หลายเดือนก่อน

    Не понравился урок. Тыкание палкой в какашку. Чувствую себя потерявшим время....

  • @astkh4381
    @astkh4381 5 หลายเดือนก่อน

    Зачем это js программисту?

    • @demimurych1
      @demimurych1 5 หลายเดือนก่อน +3

      я в самом начале посвятил єтому 30 секунд.
      єсли вы, озаботитесь производительностью или єффективностью своего js кода, то вы неизбежно придете к логам v8 о том, как он работает с вашим кодом.
      а єто автоматически будет требовать от вас, базовых навыков чтения ассемблерного кода.

    • @astkh4381
      @astkh4381 5 หลายเดือนก่อน +2

      @@demimurych1 спасибо, понял!

    • @Edgar-pu1lc
      @Edgar-pu1lc 5 หลายเดือนก่อน +1

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

    • @thismarketiing
      @thismarketiing 5 หลายเดือนก่อน

      @@Edgar-pu1lc В браузере нет Rust, но есть серьезные JS приложения требующие оптимизации, например Google Docs.

    • @greataleksius
      @greataleksius 5 หลายเดือนก่อน +2

      ​@@Edgar-pu1lcУдачи тебе писать на Rust для браузера