Чем машинный код отличается от ассемблера

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 พ.ย. 2024

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

  • @dmitriysergeevich4
    @dmitriysergeevich4 11 หลายเดือนก่อน +4

    Насколько интересно, изучаю сейчас ассемблер и каждый раз узнаю что то новое

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

      Ну что, как успехи?:)

  • @АртурКорт
    @АртурКорт ปีที่แล้ว +9

    Под 40 лет интерес к информатике когда в школе её ненавидел.Сколько времени упущено... Автору спасибо за толковое объяснение.

    • @sudo-apt-upgrade-brain
      @sudo-apt-upgrade-brain ปีที่แล้ว +4

      Лучше поздно чем никогда! Тем более с ChatGPT изучать это все намного проще.

    • @НикитаДоронин-э3ъ
      @НикитаДоронин-э3ъ ปีที่แล้ว +1

      ​@@sudo-apt-upgrade-brainА как подскажи правильно вести диалог с нейронкой, дабы изучение было более лëгким?

    • @sudo-apt-upgrade-brain
      @sudo-apt-upgrade-brain ปีที่แล้ว

      ​@@НикитаДоронин-э3ъ Желательно общаться на английском (намного лучше рус), и когда не понимаешь что-то, напоминай ей что ты нуб (новичок), тогда она упростит объяснение. Можешь еще попросить объяснить как ребёнку.

    • @LevanovSiarhei
      @LevanovSiarhei ปีที่แล้ว

      ​@@НикитаДоронин-э3ъна гуглите порядок изучения интересующего вас языка и следуйте плану

    • @tareyasmheti1526
      @tareyasmheti1526 ปีที่แล้ว

      ​@@НикитаДоронин-э3ъможете у неё спросить. Она подскажет

  • @igor_cojocaru
    @igor_cojocaru 2 ปีที่แล้ว +1

    Превьюха запутала
    Машинный код не это assembler😆
    Спасибо за видос.

  • @АндрейЛарин-в6н
    @АндрейЛарин-в6н 28 วันที่ผ่านมา

    Большое спасибо. Решил подписаться.

  • @PianoElipse
    @PianoElipse 2 ปีที่แล้ว +1

    Хор :D весело. Видать тоде нравиться коверкать слова)

  • @orkoteg09
    @orkoteg09 2 ปีที่แล้ว +4

    9:40 тут неоднозначная неоднозначность, т.к. при дизассемблировании формируются метки переходов je jne и т.п. из адресов и смещений в бинарнике (даже макросы можно восстановить по косвенным признакам повторения кода).
    поэтому при сборке все переходы будут верны, даже при изменении размера.
    другое дело, если сам бинарник котролирует размер или высчитывает переходы (например, прыжок на +100 байт вперед) - как вариант защиты или особенность работы.

  • @Александр-н1ю1п
    @Александр-н1ю1п 2 ปีที่แล้ว

    О, класс! Всегда интересовал этот вопрос, но не находил толковый ответ .

  • @танунахепта
    @танунахепта 2 ปีที่แล้ว +1

    Гениальный видео ролик. Как прочитал название и сразу сюда, не удержался😂😂😂

  • @vovanchik_ru4208
    @vovanchik_ru4208 2 ปีที่แล้ว +3

    продолжай, очень интересно!

  • @peckbrain
    @peckbrain ปีที่แล้ว +1

    Заумно объясняешь дружище.

  • @aakh3500
    @aakh3500 ปีที่แล้ว +2

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

  • @AndreiAndrei-cu7jq
    @AndreiAndrei-cu7jq ปีที่แล้ว

    Большое спасибо за понятное объяснение Соер !

  • @UFO26
    @UFO26 2 ปีที่แล้ว +9

    Соер, как написали первую операционную систему, когда не было ни одной операционной системы?

    • @semax5263
      @semax5263 2 ปีที่แล้ว +12

      @@mimocrocodil210 корневой станок от которого произошли все остальные был дарован инопланетянами в 408 году до нэ

  • @Mugen88888
    @Mugen88888 2 ปีที่แล้ว +1

    Спасибо, интересная тема.

  • @alexlawyer777
    @alexlawyer777 2 ปีที่แล้ว

    Соер - ты лучший по компам на рутубе !!!

  • @yarosav5396
    @yarosav5396 2 ปีที่แล้ว +1

    спасибо за видео, есть оффтопный вопрос, сделайте обзор на ваши гарнитуры, рабочее место и освещение на заднем фоне, особо последнее я бы mov tomy, home

  • @phunkthat4124
    @phunkthat4124 2 ปีที่แล้ว +6

    7:49 Да, пожалуй лучшее объяснение, состедоточиться строго на одной архитектуре. Безо всяких pdp-11 и z80, как у комментаторов. Выбросить из головы это старьё. В одном x86/amd64 уже можно закопаться. Да еще неточности в объяснении, человеческий фактор...
    В одном случае add который 66 05 ждет 4 байта на вход, в другом, где 66 83 -- 2 байта.
    Вот и вся разница. Дизассеблер длин. У команд перемнная длина для разных случаев.
    И получается, что запись 66 05 01 00 неверна, она не полная. Процессор сожрет еще два байта после. А значит, взаимная однозначность очень даже имеет место.
    Надо 66 05 01 00 00 00
    Самое главное, естественно по памяти я этого не знал. Тупо взял двоичный дизассемблерный редактор hiew, позволяющий писать файлы вручную прямо в машинных кодах, и тут же видеть ассемблерный вид.

    • @S0ERDEVS
      @S0ERDEVS  2 ปีที่แล้ว

      Да, насчет 4-х байт вы правы, там не дописал нулей.
      Взаимной однозначности нет:
      было: 66 05 01 00 00 00 -
      дизассемблер выдал: add ax, 0x1
      повторное ассемблирование: 66 83 с0 01 (и тут у нас поехала адресация)
      взаимная однозначность это когда add ax, 0x1 - это всегда 66 05 01 00 00 00.

    • @phunkthat4124
      @phunkthat4124 2 ปีที่แล้ว +2

      @@S0ERDEVS Адресация не поехала. Тут всё правильно.
      add ax, 0x01 это 66 83 с0 01
      add eax, 0x01 это 66 05 01 00 00 00
      Чем ax отличается от eax пусть читатель сам выяснит.
      Но оба кода будут работать корректно на 32- и 64- битных системах.

  • @valbv
    @valbv 2 ปีที่แล้ว +4

    Офигенно! Даёшь больше таких видосов!!!
    Некоторые вещи не знал )

  • @sovrinfo
    @sovrinfo 2 ปีที่แล้ว

    Спасибо за видео.Коммент в поддержку!

  • @ExWheel
    @ExWheel 2 ปีที่แล้ว

    Благодарю за видео, очень качественно и информативно

  • @ВасилийАбрамян-ь2л
    @ВасилийАбрамян-ь2л 2 ปีที่แล้ว

    Спасибо, было интересно!

  • @koffeika_let2947
    @koffeika_let2947 ปีที่แล้ว

    Блин это так интересно, спасибо соер за объяснение

  • @vladimirzhazha5912
    @vladimirzhazha5912 2 ปีที่แล้ว +7

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

  • @msbull100
    @msbull100 9 หลายเดือนก่อน

    Ассемблер мнемоническое представление машинных кодов. Есть еще макрорасширения, для компоновки и компиляции кода. На этом все.

  • @Marselmarsemars
    @Marselmarsemars 2 ปีที่แล้ว

    Спасибо. Было интересно

  • @orkoteg09
    @orkoteg09 2 ปีที่แล้ว +5

    хор )

    • @semax5263
      @semax5263 2 ปีที่แล้ว +2

      После хора закрыл это бессмысленное видео.

  • @Kaktus_77
    @Kaktus_77 ปีที่แล้ว

    В случае с записью в регисты, получается на самом деле в процессоре есть разные команды для записи в разные регистры (для записи в каждый регист - своя команда, сколько регистров - столько и реально команд, а не один "muv"), при том что мнемоника одна. Это грубо говоря упрощение для программиста - нужно знать только одну мнемонику для записи и указывать регистр. Короче так была придумана первая обстракция в программировании😄
    На самом деле команд в процессоре больше (реальных бинарных кодов операций), чем команд в асемблере для конкретного кристала описанных в даташите, все зависит от архитектуры.

    • @ukr9760
      @ukr9760 11 หลายเดือนก่อน

      Что такое команда «muv»?😅

    • @USER-ruzer2000
      @USER-ruzer2000 8 หลายเดือนก่อน

      Команда mov она одна, но она многобайтная. Команда одна, но состоит из трёх частей:
      1) переложи байт
      2) откуда
      3) куда.
      Первая часть команды всегда одинаковая, а другие две могут быть разные.

  • @soltaurus
    @soltaurus 2 ปีที่แล้ว +38

    Ни разу не слышал утверждения, что ассамблер и машинный код это одно и то же

    • @ИванИванов-м2ч2л
      @ИванИванов-м2ч2л 2 ปีที่แล้ว +3

      Тоже первый раз про такое слышу. Если это одно и тоже, то все ассемблеры = машинный код или какой-то конкретный ассемблер? )))

    • @Helling_Out
      @Helling_Out 11 หลายเดือนก่อน

      Мне говорили что ассемблер максимально приближен к машинному коду

    • @knodesec
      @knodesec 11 หลายเดือนก่อน +2

      А я ранее слышал... от самого себя)

    • @-fym-
      @-fym- 10 หลายเดือนก่อน +1

      Ну приблизительно так и есть. Асм же машинно-ориентированный яп.

    • @fanatmlp-
      @fanatmlp- 10 หลายเดือนก่อน

      🫡

  • @MrValNick
    @MrValNick 11 หลายเดือนก่อน +2

    Мой дисассемблер генерил ассемблер код который после ассемблирование в двоичный код полностью совпадал с исходным машинным кодом. Иначе это не дисассемблер, а хз что!

  • @MikhailGoncharov-tl4cr
    @MikhailGoncharov-tl4cr 2 ปีที่แล้ว

    Мне обзор понравился, тема интересная

  • @ДавидВартанян-й8ч
    @ДавидВартанян-й8ч 2 ปีที่แล้ว +1

    Крайне познавательно, структурированно и локанично! Один из лучших каналов на тему программирования…, спасибо за труд! :)

  • @nikolaiii3
    @nikolaiii3 2 ปีที่แล้ว +13

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

    • @USER-ruzer2000
      @USER-ruzer2000 8 หลายเดือนก่อน

      Мы в институте для микроконтроллеров писали на ассемблере и каждую команду дублировали машинным кодом. Там ясно было видно что мнемоника просто удобное восприятие машинного кода. Короче одно и тоже.
      А вот компьютерщики, которые не очень понимают что такое регистр считают что это не одно и тоже.

  • @6trica1a3
    @6trica1a3 ปีที่แล้ว +2

    Ассемблер это компилятор языка ассемблера

  • @funfunfun536
    @funfunfun536 2 ปีที่แล้ว +18

    2:51 Не согласен по поводу меток. Теряются не метки, а всего лишь их имена (как и имена переменных). Если метка в программе была использована (на нее есть jmp, call... etc), ее можно восстановить.
    4:26 Лучшим примером разного синтаксиса будет наличие мнемонического ассемблера и алгебраического у некоторых производителей микроконтроллеров/цифровых сигнальных процессоров. Два ассемблера в видео: Intel и AT&T - это все примеры мнемонического ассемблера. Алгебраический, он больше похож на запись в стиле языка С. Например,
    мнемонический код:
    MOV ADDRA,AC0
    ADD ADDRB,AC0,AC0
    MOV AC0,ADDRB
    эквивалентен алгебраической записи:
    AC0 = @(ADDRA)
    AC0 = AC0 + @(ADDRB)
    @(ADDRB) = AC0
    7:47 Тут стоит понимать, что ассемблер неотделим от архитектуры процессора (в том числе его разрядности). Некорректно сравнивать машинный код похожих инструкций у фактически разных архитектур, заявляя, что они скомпилировались в разные последовательности байтов, а значит, имеется неоднозначность. Не существует какого-то сферического ассемблера в вакууме. Есть ассемблеры 8088, 8086, 80286, 80386, и много еще каких для АРМов, DSP и прочего.
    10:22 Снова мимо. Кто вам сказал, что мнемоники обязательно должны быть однобайтовыми? Они вообще кодируются по принципу бинарного дерева. Более часто употребимые могут иметь меньшую длину (меньше одного байта, например, 4 бита). Более редкие - более длинные.

    • @S0ERDEVS
      @S0ERDEVS  2 ปีที่แล้ว +7

      1. Метка теряется, вместо нее подставляется адрес
      2. не понял, вы опровергаете, дополняете или соглашаетесь?
      3. архитектура одна и та же, разные варианты появляются на уровне архитектуры за счет обратной совместимости и избыточности, например на уровне АЛУ, когда есть машинные коды для двухбайтовых и четырехбайтовых значений.
      4. мнемоники вообще не имеют фиксированной длины, поэтому и нет соответствия. Более того нет правила, что одной и той же мнемонике соответствует одно и то же количество совпадающих бит, они могут быть разными и определяться исходя из семантики всей команды, а не самой мнемоники.

    • @funfunfun536
      @funfunfun536 2 ปีที่แล้ว +13

      ​@@S0ERDEVS 1. Метка в асме - это адрес в машинном коде. А поскольку асм с машинным кодом взаимнооднозначны, то по адресу восстанавливается метка (только с дефолтным именем). Например на асме intel 8051,
      mov A, my_fancy_variable
      cjne A, #0x12, not_equal
      movx A, @R0
      not_equal:
      swap A
      После получения машинного кода из этого листинга, а потом дизассемблирования его, получим листинг типа такого:
      mov A, var_1
      cjne A, #0x12, label_1
      movx A, @R0
      label_1:
      swap A
      По мне так слово "теряется" означает утрату без возможности ее восстановить. Что в данном случае потерялось кроме имен меток? Или что означает в вашем случае слово "теряется"?
      2. Я к тому, что ассемблеры для одного и того же процессора могут принимать гораздо более причудливые формы, но это не значит, что между ними нет взаимной однозначности. Вы же не станете утверждать, что 18, 0x12, 022 и 0b00010010 - это разные числа? При любой из этих записей в памяти будет лежать одно и то же число. С листингами та же ситуация.
      3. В любом случае по имени команды (или ее суффиксу в некоторых случаях), специальному байту-префиксу можно понять разрядность или вывести из разрядности ее аргументов (как транслятор и поступает). Взаимная однозначность и тут никуда не девается. Или я чего-то не догоняю?
      4. Я об этом же и говорю. Конечно мнемоники транслируются в маш.код с учетом типов аргументов и их размеров. Но почему вы говорите, что нет однозначности между командами ассемблера и маш.кодом, мне не понятно. Ваш пример с mov ax, 1 / mov cx, 1 мог бы быть объяснен следующим образом. Т.к. это операция mov между регистром и константой, то mov кодируется 5-битовой последовательностью 10110 для 1-байтовой операции и 10111 для 2-байтовой (и 4-байтовой, кстати, так же). Следующие 3 бита - это номер регистра: AL - 000, CL - 001 и т.д. (для 8-битовых операндов), AX - 000, CX - 001, DX - 010 и т.д. (для 16-битовых операндов). Первый байт разобрали. Поскольку у вас 16-битные аргументы, далее должны идти 2 байта, задающие константу (у вас, кстати, 1 байт - это ошибка, но это в данном случае несущественно). И, если мне память не изменяет, для 16-битовых операндов будет нужен байт-префикс 0x66 для данной команды mov (но могу ошибаться - может, для 32-битовых операндов, т.к. на асме для x86 уже лет 20 не писал).

    • @KonstantinPrydnikov1
      @KonstantinPrydnikov1 2 ปีที่แล้ว

      @@funfunfun536 Бро, тормозни, хочешь чтобы Соера от кишонок отвернуло?

    • @1kamely
      @1kamely ปีที่แล้ว +2

      @@funfunfun536 20 лет не писал и такие вещи говоришь, и правда, ты гений
      на каком языке сейчас пишешь? Чтобы сразу учится этому языку а не другим, которые хуже. Ведь такой гений не будет писать на плохом языке

  • @Dmitrii-Zhinzhilov
    @Dmitrii-Zhinzhilov ปีที่แล้ว

    Благодарю! Очень интересно!! 👍🔥💯подписка+1

  • @Mark-or7nd
    @Mark-or7nd 2 ปีที่แล้ว

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

    • @AntiBandera
      @AntiBandera 2 ปีที่แล้ว

      эксепшен выкидывает

  • @slavastalkerovich2035
    @slavastalkerovich2035 2 ปีที่แล้ว +13

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

    • @crazy_tht3706
      @crazy_tht3706 2 ปีที่แล้ว +2

      Все же у разговорных языков это работает в обе стороны, но аналогия неплохая

  • @Send_Name
    @Send_Name 2 ปีที่แล้ว +1

    4:00 - А что из себя представляют соглашения?

  • @xrtcam163
    @xrtcam163 2 ปีที่แล้ว +1

    Думаю достаточно уже того что если бы это было одно и то же никто бы не создавал ассемблер, ассемблер это просто следующий этам абстракции для убодности и писания более широкими мазками, но уже менее управляемыми и кастомизируемыми. Чем выше подымаемся по уровням абстракции, там например с++, пайтон, фреймворк так называемый и так далее тем более широкий мазок и менее управляемость детальная. Вот и все. Просто те кто говорят что одно и тоже люто безграмотны и у них напрочь вообще отстуствует даже эллементарная логика инфузории. Так как если бы так то люди бы просто писали на машином как и писали и все. Они зачемто и ясно зачем создали ассемблер потом С и так далее.

    • @USER-ruzer2000
      @USER-ruzer2000 8 หลายเดือนก่อน

      Мы в институте для микроконтроллеров писали на ассемблере и каждую команду дублировали машинным кодом. Там ясно было видно что мнемоника просто удобное восприятие машинного кода. Короче одно и тоже.
      А вот компьютерщики, которые не очень понимают что такое регистр считают что это не одно и тоже.

  • @ИванШалутов
    @ИванШалутов 2 ปีที่แล้ว +2

    Мне кажется язык ассемблера и машинный код проще объяснить так: машинный код это набор команд в виде ноликов и единичек, чтобы процессор понимал что ему делать, а язык ассемблера это уже слова которые соответствуют наборам ноликов и единичек. То есть совсем не одно и то же. На языке ассемблера писать проще, там хотя бы слова, а не нолики и единички. Остальное объяснение это уже углубленная инфа. Возможно лишняя.

    • @Alan-12345
      @Alan-12345 10 หลายเดือนก่อน

      Согласен

    • @USER-ruzer2000
      @USER-ruzer2000 8 หลายเดือนก่อน

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

  • @Anatoly555
    @Anatoly555 2 ปีที่แล้ว +1

    Поясните чайнику:
    с тем, что взаимно однозначного соответствия кода на асм и машинным нет - согласен, это понятно
    но на 9:24 утверждается, будто после операции дизассемблировании и затем ассемблирования программа перестанет работать??!!
    это ж кто ж так косячит?
    давайте по простому, в понятиях "рабочий/нерабочий код"
    положим есть машинный код М_исх - он рабочий,
    мы его дизассемблируем, получаем ассемблерный код АСМ - он рабочий, ведь дизассемблер работает нормально
    теперь мы ассемблируем код АСМ и получаем машинный код М_новый - почему он вдруг оказался нерабочим, если код АСМ - рабочий?
    Выходит, существует такой код на ассемблере, который верный, но после ассемблирования программа вдруг не работает?
    Или дизассемблер не справился и код АСМ - уже нерабочий?
    Есть ещё предположение. Рассматривается ситуация, когда машинный код, написанный для одного процессора подсовывается дизассемблеру под видом кода другого процессора. То есть, берём набор байт - машинный код для суперсовременного процессора, и скармливаем его дизассемблеру, которому говорим, что это код для процессора Z80 (компьютер из прошлого века ZX Spectrum). И удивляемся, почему дизассемблер пишет фигню. Так?

  • @Alan-12345
    @Alan-12345 10 หลายเดือนก่อน +3

    Тем что ассемблер компилируется в машинный код. Все. О чем тут 13 минут рассуждать

  • @mrs2z914
    @mrs2z914 2 ปีที่แล้ว +1

    S0ER - Луч света в темном царстве интернета... Удачи!!!

  • @KADMIyMGN
    @KADMIyMGN 2 ปีที่แล้ว +5

    Кто пишет в машинных кодах, в ассемблере не смеётся 😇
    ЗЫЖ Программирование на листочке рулит. 😂 25лет уж минуло...

  • @федов-ф4х
    @федов-ф4х 2 ปีที่แล้ว +3

    то чувство года начал изучать ЯП в 90х и тут пахнуло ностальгией. спасибо. ассемблер не машинный код от слова совсем. просто запустите на екзешник дизассемблер и сравните.

    • @AntiBandera
      @AntiBandera 2 ปีที่แล้ว

      с чем сравнить ?

    • @федов-ф4х
      @федов-ф4х 2 ปีที่แล้ว +2

      @@AntiBandera с исходником написанным вами же.

  • @NyanCoder
    @NyanCoder 2 ปีที่แล้ว +1

    Хмм, а разве настолько ли сложно дизассемблеру адреса преобразовать в метки? (Конечно имена меток потеряются, но что-то типа "метка1", "метка2" и т. п. думаю во многих случаях подставить можно)
    P.S.: за другие архитектуры без понятия, а сам копался лишь в 64-битном интеловском (в 32-битном мне не нравились соглашения вызовов, да и все мои пк в то время уже были 64-битными)

    • @S0ERDEVS
      @S0ERDEVS  2 ปีที่แล้ว +2

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

    • @chaoskrl
      @chaoskrl 2 ปีที่แล้ว

      @@S0ERDEVS Т.е. как та же IDA делает? Насколько я понимаю, она по файлу несколько раз пробегает, чтоб потом показывать, где метки, откуда идет запрос к константам, и т.д.

  • @ctf59
    @ctf59 2 ปีที่แล้ว

    Кто в теме, ответьте максимально подробно в чем отличие байт кода от опкодов?

  • @IvanIvanov-ps5iz
    @IvanIvanov-ps5iz 4 หลายเดือนก่อน

    Если не глядя быстро прочитать S0ER то вижу SBER...

  • @AstarotVoland
    @AstarotVoland 9 หลายเดือนก่อน

    Фривольное обращение с терминами приводит к подмене понятий и подмене смысла, а это приводит к недопониманию и путаницам. Так поступают оккупанты перед агрессией.
    Со школы приучают употреблять слова, смысл которых НЕ ПОНЯТЕН, всё на уровне догадок и домыслов.
    Обзывать машинный код ассемблерным кодом, это как гвозди обзывать рукопальцами.
    Так, понятие "разряд числа" похерили тупыми непонятными "битами". Это не одно и то же. Они из разных контекстов. Где-то конечно можно так говорить, но только потому, что это уместно, но не потому что так удобно в произношении, может оно и удобней, но совершенно искажает смысл. Договариваются до того, что телеграфный код Бодо называют пятибитным.. Вообще-то бит это "двоичное число" (в переводе с латыни - 2 пальца) у которого 2 состояния, но не разряда! разряд то один!!! Поэтому код Бодо скорее пятиразрядный. А в разряде 2 состояния - есть контакт, нет контакта. И 150 лет назад никаких битов в помине не могло быть, было понятие разряда числа. А разряд это МЕСТО в форме записи числа. А одно место в десятичной системе содержит одно из 10 значений! Мы же не говорим что 1000 это тысячецифирное число, мы выражаем его количественным значением - тысяча. Аналогично и двоичные числа выражаются количественным значением. Но для двоичного числа нет названия, поэтому оно выражается как десятичное, потому что оно нам понятно. Когда хотим показать не числовую величину, а количество знаков, то в этом случае справедливо можем сказать, что длина двоичного числа состоит ИЗ N разрядов. И это академически ПРАВИЛЬНО. Правильным будет сказать: трёхразрядное, пятиразрядное, семиразрядное, восьмиразрядное число, шестнадцатиразрядное и т.д. Если называть это битовостью, то это академически неправильно. Тем более, обзывать разрядность аппаратной части битовостью, это неграмотно. Ну давайте назовём не "битом", а "монетой" -- восьми монетный, 32-х монетный. Может так понятнее будет? Разряд он и в Африке разряд - "размерный ряд". ( или монетный ряд?)

  • @AmericanDragon134
    @AmericanDragon134 2 ปีที่แล้ว

    Вы очень много сидите за компом?

  • @Eustrop
    @Eustrop 2 ปีที่แล้ว

    7:49 вот здесь, можно было-бы подробнее разжевать, полагаю. Первую команду из примера: add cx,0x1
    Думаю, здесь многим осталось непонятно.
    А так - как обычно превосходно!

    • @phunkthat4124
      @phunkthat4124 2 ปีที่แล้ว

      Написал выше объяснение.

    • @michaeljordan1283
      @michaeljordan1283 2 ปีที่แล้ว

      Видео о том, чем машинный код отличается от ассемблера. А не о том, как работает компилятор ассемблера.

  • @MrPalianytsia
    @MrPalianytsia 2 ปีที่แล้ว +1

    На кого видео рассчитано?
    Кто пишет на ассемблере те и так в курсе.
    Кто не пишет, .....

  • @stas6848
    @stas6848 2 ปีที่แล้ว

    Сны и сновидения - в чем отличие?

  • @itdotconf675
    @itdotconf675 2 ปีที่แล้ว

    Hydra, хм, так вот в чем секрет успеха

  • @Alex-zz8vk
    @Alex-zz8vk 2 ปีที่แล้ว

    спасибо.

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

    high skill

  • @realmanproject7529
    @realmanproject7529 2 ปีที่แล้ว +2

    првиет всем кул хацкерам

  • @rilledkokesov2731
    @rilledkokesov2731 ปีที่แล้ว +1

    Вообще слабо понимаю о чем здесь дискусс. Ассемблер не является машинным кодом и это аксиома.

  • @semsoe5638
    @semsoe5638 2 ปีที่แล้ว +1

    Вот почему Ремастеры так с нами поступили. А я пинял на "руко.....".
    Вопрос: Кто нибуть что-то делает чтобы это вылечить?

  • @sergeistarodubov2534
    @sergeistarodubov2534 2 ปีที่แล้ว

    охеренно, лайк

  • @w.t.2905
    @w.t.2905 2 ปีที่แล้ว +3

    Тебя с работы что ли выгнали? Ролики каждый день. Ты уж наверное забыл, как код писать. На тик-ток скоро планируешь?

  • @nikolaiii3
    @nikolaiii3 2 ปีที่แล้ว

    CD 19 всем.

  • @paganorth
    @paganorth 2 ปีที่แล้ว

    это все проблема компилятора но это максимально близкий код ибо надо следить за памятью, потоками и тд..

  • @desys.
    @desys. 2 ปีที่แล้ว

    Значит ты машинник?

    • @S0ERDEVS
      @S0ERDEVS  2 ปีที่แล้ว

      Нет, я - соер

  • @alexandernaumochkin
    @alexandernaumochkin 2 ปีที่แล้ว +2

    Словоблудие, поддерживаемое эклектикой архитектур IA-32/64.

  • @sandalsuzdalov1606
    @sandalsuzdalov1606 2 ปีที่แล้ว +1

    В кучу завалил. Лучше опишите как это работает по подробнее, тогда и понятнее будет. Ассемблер - по моему, это очеловечивание машинного кода. Т. Е. Бинарный код процессора описывается на человеческом языке(не битами) - словами(буквами). У разных процессоров биты одной и той же команды разные. Вот из этого и следует разница при дисассеблировании. Нам не важно знать битовые команды сложения разных процессоров. Это дело интерпретатора языка. Вот откуда идет проблема.

    • @sandalsuzdalov1606
      @sandalsuzdalov1606 2 ปีที่แล้ว

      Add значит умножение. И нам не надо знать как это будет в двоичном коде выглядеть для интел или для амд процессора. При дисассемблировании наоборот. Надо выделить откакого проца код надо дисассемблировать. Ведь код то разный у всех. Ассемблер один для всех, а коды разные. Вот где собака ...

  • @semax5263
    @semax5263 2 ปีที่แล้ว +1

    Кликбейт.

  • @АнатолийКрымский-х5ъ
    @АнатолийКрымский-х5ъ ปีที่แล้ว

    Сойер, а ты можешь снизойти к украинскому деду??
    И поговорить...

  • @websofter
    @websofter 2 ปีที่แล้ว

    Если 1 такт процесса соответствует 1 команде ASM, то это машинный код, иначе это комбинация нескольких машинных команд под одной командой ASM

    • @fulcanelly
      @fulcanelly 2 ปีที่แล้ว +2

      извините но это бред

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

    много пустой болтовни

  • @GenaPavlov-e5o
    @GenaPavlov-e5o 9 วันที่ผ่านมา

    Ассемблер это самый обычный язык программирования!!!! Машинный код совсем другая вещь!!!