// Язык Ассемблера #1 [FASM, Linux, x86-64] //

แชร์
ฝัง
  • เผยแพร่เมื่อ 10 ส.ค. 2019
  • Библиотека (со всеми процедурами, которые будут разобраны в последующих видео): github.com/Number571/ASMLIB
    Материал по ассемблеру FASM:
    flatassembler.narod.ru/fasm.htm
    www.cyberforum.ru/fasm/thread1...
    Примеры программ с ассемблером NASM (во многом схож с диалектом FASM):
    asmtutor.com/
    Книга по языкам ассемблера:
    Assembler для DOS, Windows и UNIX (Автор: Зубков С.В.)
  • วิทยาศาสตร์และเทคโนโลยี

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

  • @midaef6630
    @midaef6630 4 ปีที่แล้ว +48

    Только начал изучать асм и тут ролик от тебя. Жду продолжение

    • @caysonjaxson1575
      @caysonjaxson1575 3 ปีที่แล้ว

      I know I am kinda off topic but does anybody know a good place to watch newly released movies online ?

    • @dukereginald328
      @dukereginald328 3 ปีที่แล้ว

      @Cayson Jaxson lately I have been using flixzone. Just search on google for it =)

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

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

  • @user-fn4yi7xj9y
    @user-fn4yi7xj9y 4 ปีที่แล้ว +4

    Спасибо большое Автору за отличную работу !!!

  • @-dmitry-5384
    @-dmitry-5384 4 ปีที่แล้ว +2

    Спасибо! Было интересно, четко и внятно!

  • @dkoder8055
    @dkoder8055 4 ปีที่แล้ว +3

    Действительно прекрасный человек.

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

    Мне нравится такой стиль обучения. Я так PHP, С/С++ и другие языки выучил давно-давным в далеком детстве. Учил языки на готовых коммерческих проектах (правда первые проекты делал для знакомых, сроков как таковых не было). Надо было сделать сайт. Купил книгу и по книге уже делал готовый сайт. Точно так же и C++. Проект для знакомых, тоже накупил, накачал литературы и делал.
    Теперь уже давно работаю программером. ASM интересует лишь в образовательных целях и возможно реально когда то буду использовать на практике для написаний процедур для С/С++

  • @igorkudryk2199
    @igorkudryk2199 4 ปีที่แล้ว +7

    Как раз в след. семестре ассемблер, на каникулах прослушаю ваши видео! Звучит очень полезно :)

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

      Рекомендую почитать Столярова А.В. Введение в профессию. Азы программирования. После первого тома начинаешь читать второй про ассемблер и там в разы доходчивее.

  • @user-bi4ve1id8y
    @user-bi4ve1id8y 3 ปีที่แล้ว +1

    Спасибо! Очень хорошее видео. Разобрался, всё получилось.

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

    Спасибо за труд и знания .Удачи вам а я продолжаю )

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

    большое спасибо.все понятно и разборчиво!

  • @user-hd6lu1de5k
    @user-hd6lu1de5k 4 ปีที่แล้ว +57

    Так-так-так, не намёк ли обои в видео, что окончанием курса будет урок по взлому CERN'а и его продолжением будут уроки машинного кода, концом которых будет взлом IBM-5100?

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

    Бро офигеть. Лукас!!!!

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

    Очень полезно, спасибо!

  • @serge2773
    @serge2773 4 ปีที่แล้ว +19

    фасм, насм, пасм, в данный момент мы ...звук выстрела...

  • @Hlupa722
    @Hlupa722 3 ปีที่แล้ว +5

    Ту-Туру, КриптоФан! Благодарю тебя за твои труды. У меня к тебе вопрос, ты сам учил ассемблер или ходил на какие-то курсы?

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

    классный урок, очень интересно

  • @panmelnyk
    @panmelnyk 4 ปีที่แล้ว +8

    Я человек простой: вижу шайтан-калитку - ставлю лайк и подписос

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

    Топ, ясно и понятно!

  • @MrValNick
    @MrValNick 7 หลายเดือนก่อน

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

  • @it_stylecorp.7694
    @it_stylecorp.7694 2 ปีที่แล้ว +1

    Нихрена не понятно, но ооочень интересно, уже 5й раз буду пересматривать, что бы осмыслить все что здесь сказано и показано🤣🤣
    З.Ы К автору никаких претензий, это исключительно моя невнимательность и несостоятельность в этих вопросах)

  • @vasiliychernyuk3244
    @vasiliychernyuk3244 3 ปีที่แล้ว

    Интересный у тебя канал))

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

    Большое спасибо!

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

    спасибо за видео, все очень круто и понятно

  • @0day694
    @0day694 4 ปีที่แล้ว

    Круто!

  • @petyaderyabin4136
    @petyaderyabin4136 3 ปีที่แล้ว +5

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

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

    О, я немного пишу на асме для 8051-совместимых микроконтроллеров. Какое все непохожее! Но кое-что знакомое есть, местами понятно. Поставил Debian на виртуалку, будем попробовать.

  • @user-nh3fn9mq1g
    @user-nh3fn9mq1g 4 ปีที่แล้ว +5

    ВРАТА ШТЕЙНА!!!

  • @du7s
    @du7s 20 วันที่ผ่านมา

    Красавчик

  • @user-bw7ov8ip5w
    @user-bw7ov8ip5w 4 ปีที่แล้ว

    Спасибо!

  • @user-tj9su2ew1i
    @user-tj9su2ew1i 4 ปีที่แล้ว +1

    Подскажите пожалуйста какую нибудь литературу по FASM ассемблеру.

  • @mark_fritz
    @mark_fritz 4 ปีที่แล้ว

    Полезные уроки, благодарю за проделанный труд. Хотел бы спросить, изучал ли ты C++? Если да, то будут ли уроки по нему?

    • @babyblade1
      @babyblade1 4 ปีที่แล้ว

      Смысл ?
      По c++ полным полно гайдов , тот же Гоша Дударь .

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

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

  • @Eduard-ne2ff
    @Eduard-ne2ff 5 หลายเดือนก่อน

    Thank you!

  • @user-md1jl3nv8z
    @user-md1jl3nv8z ปีที่แล้ว +1

    Мне очень нравится вот эти, два языка Ассемблер и C. И я думаю ни один язык высокого уровня, не должен обходится без низкого. А познакомился я с ними при программирование микроконтроллеров. Вопросы у меня к вам! Для взаимодействия с аппаратной частью пк нужен Ассемблер? Как раньше графический интерфейс писался на ассемблере? И посоветуйте хорошую литературу по ассемблеру в которой бы желательно, рассмотрено от взаимодействия с аппаратной частью и кончая создание графического интерфейса.

  • @user-cg2fw3kw9d
    @user-cg2fw3kw9d 3 ปีที่แล้ว +1

    Здравствуйте! Скажите пожалуйста, что мне делать, когда я скомпилировал программу из данного видео и дал ему право исполняться, он выдал ошибку сегментирования. ОС Xubuntu 18.04

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

    echo $? в линуксе выведет код возврата приложения (в винде echo %errorlevel%)
    Годный контент! Жаль такого мало в интернетах

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

    спасибо за видео, жаль канал забросил((9(

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

    Лайк за Haskell

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

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

  • @YoRicK196
    @YoRicK196 4 ปีที่แล้ว +43

    Нечего не понятно, но очень интерестно

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

      Да, материал преподается не очень доходчиво. Рекомендую почитать Столярова А.В. Введение в профессию. Азы программирования. После первого тома начинаешь читать второй про ассемблер и там в разы доходчивее.

    • @umnikumnikov1338
      @umnikumnikov1338 3 ปีที่แล้ว

      @@nickdsl а по масм32 какая книга хорошая?

    • @user-rz9nc5fj4z
      @user-rz9nc5fj4z 4 หลายเดือนก่อน

      Первая часть фразы в точку!

  • @aleckseyazovsky3270
    @aleckseyazovsky3270 4 ปีที่แล้ว

    благодарю за видео, что то на попугае не выдает ошибку на exit если rbx поставить не 0. просто выдает что программа не прошла. И "релизная" версия выдает Segmentation fault.

  • @user-fv3uy2px1b
    @user-fv3uy2px1b 2 ปีที่แล้ว

    Спасибо

  • @Vic7bd
    @Vic7bd 8 หลายเดือนก่อน +1

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

  • @nouchance
    @nouchance 3 ปีที่แล้ว

    Спасибо за уроки! пожалуйства скинь мне свой Sublime Text (extension) не могу установить Ассемблер

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

    Почему компиляторы С/С++ не эффективно компилируют, почему нужно писать на Ассемблере?
    Подскажите!

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

      не нужно тебе писать на ассемблере, расслабься

  • @kiri11-mi1
    @kiri11-mi1 4 ปีที่แล้ว

    Какой дистрибутив?

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

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

  • @zero-ix3bz
    @zero-ix3bz 4 ปีที่แล้ว

    cool

  • @user-uz2fm8pq3s
    @user-uz2fm8pq3s 4 ปีที่แล้ว +5

    Привет, создай беседу ВК/ телеграмм , для вопросов и общения , твои уроки очень помогают , спасибо!

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

      Беседу создавать лень )
      По поводу вопросов, можете писать в личные сообщения, отвечу как смогу.

    • @user-uz2fm8pq3s
      @user-uz2fm8pq3s 4 ปีที่แล้ว

      @@CryptoFunIT где взять такие же обои как у тебя?

    • @CryptoFunIT
      @CryptoFunIT  4 ปีที่แล้ว

      @@user-uz2fm8pq3s mega.nz/#!h99BHKRI!tEZPe51Squpo1LcBlWCc9P2ne0y-ATyPt5wgCx_GxzM

    • @user-rz9nc5fj4z
      @user-rz9nc5fj4z 4 หลายเดือนก่อน

      ​@@CryptoFunITЛентяй?

  • @TeaL0ver
    @TeaL0ver 3 ปีที่แล้ว

    Ссылочку на обои можно?

  • @Andreykin_Plushkin
    @Andreykin_Plushkin 4 ปีที่แล้ว

    Найс

  • @user-vy7hh8kz7p
    @user-vy7hh8kz7p 5 หลายเดือนก่อน

    Здравствуйте!) почему в начале плей-листа не рассказывается о том какой редактор используется? Почему структура папок именно такая? В какой папке какой файл создать? Может я не достаточно умен для этого плейлиста, направите тогда на видео где посмотреть о том о чем здесь нету, а то в первом видео уже куча всего создано и не понятно по какой логике. Желательно так чтобы было понятно еще мне на виндовс …

  • @user-kd3vy7vs8l
    @user-kd3vy7vs8l 4 ปีที่แล้ว

    new_line equ 0xA это что то типа int new_line=0xA; ??? или я не так понимаю?

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

      Псевдо-инструкция equ подобна строке из языка программирования Си:
      #define new_line 0xA
      То-есть, equ определяет имя константы и связывает его со значением, которое будет заменяться на этапе препроцессора. Тем самым, equ не занимает никакой отдельной памяти в работающей программе, а просто является подстановкой. В ассемблере FASM есть ещё две похожие операции на equ, а именно fix и '='. Псевдо-инструкция fix имеет высший приоритет подстановок, то-есть её можно без проблем использовать для переопределения инструкций препроцессора и только после неё начинаются другие подстановки:
      define fix equ
      inc fix include
      И последняя псевдо-инструкция - это знак '=', которая в отличие от equ вычисляет значение выражения сразу на этапе препроцессинга. Это легко можно проверить при помощи символа взятия текущего адреса в программе '$'. Если мы определим
      len equ $-msg
      как взятие длины сообщения, то всё будет в данном случае печально, так как вместо длины сообщения мы получим полную инструкцию $-msg, вместо конкретной длины и итогом будет являться ошибка.
      Если же мы определим
      len = $-msg
      то в len будет храниться конкретное число, которое можно уже использовать для указания длины сообщения.

  • @vasjapupkin9752
    @vasjapupkin9752 4 ปีที่แล้ว +6

    JMP exit ! Вы не вызываете подпрограмму, а производите системный вызов завершения программы. После call в стеке остаётся адрес, адресующий команду после call - зачем засорять стек мусором ?. Понятно что система стек очистит, но правило хорошего тона :)

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

      Почему компиляторы С/С++ не эффективно компилируют, почему нужно писать на Ассемблере?
      Подскажите!

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

      @@sledleo Любой язык высокого уровня перекладывает свои операторы на команды процессора. И в этом процессе возникает избыточный код. Операторов в С десятки, а команд у процессора сотни, а с учётом MMX итд может уже и тысячи. У компилятора нет искусственного интеллекта поэтому он это делает стандартными блоками которые далеко не всегда подходят для вашей задумки. Это как строить дачу из каменных блоков египетской пирамиды :) Но для коммерческого софта важна цена, время разработки и командная работа - поэтому большинство программ на С.

  • @user-vt5yh6td3e
    @user-vt5yh6td3e 3 ปีที่แล้ว +1

    Подскажите, какой формат у windows?

    • @alextenyakov100
      @alextenyakov100 3 ปีที่แล้ว

      Может уже поздно, но отвечу на всякий случай. Формат у Windows - PE GUI, а у 64-х разрядной соответственно PE GUI64

  • @user-mo8gs3jl2e
    @user-mo8gs3jl2e 4 ปีที่แล้ว

    Какой редактор используете?

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

      лучше vim ( на первый взгляд страшно, но там можно поставить кучу плагинов, очень удобно!) и QtCreatora я не встречал(зависит от задачи)

  • @thomasanderson3304
    @thomasanderson3304 7 หลายเดือนก่อน

    Случайно обнаружил: section '.data' writable если поставить выше данных и есть код после данных, то вызывает ошибку сегментирования. Т.е. надо после данных обязательно ставить секцию типа executable

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

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

  • @pavelbabich4589
    @pavelbabich4589 4 ปีที่แล้ว

    Хоть и кодим на высоких уров. языках но никогда и не поймем низкий уровень и тот кто его знает и шарит то БОГИ программирование)

    • @babyblade1
      @babyblade1 4 ปีที่แล้ว

      Логично , что низкоуровневые языки сложнее . Тк высокоуровневые языки операются на них

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

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

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

    false main.asm
    make: *** [Makefile:11: once] Ошибка 1
    Я несколько раз перепроверил и там все как в видео. В чем проблема?

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

    Что если у меня 64 разрядный проц ? Запускать на виртуалке ?

  • @user-gw6wt6uy4y
    @user-gw6wt6uy4y 4 ปีที่แล้ว

    Кто знает как в строке поменять местами слова? Это по Ассемблеру.

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

    Какой Линукс стоит и какие пакеты ? Какие плагины в ВСК?

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

    если бы не изучал до этого ассемблер, наверно бы не понял многого.

  • @user-ne4bd3ry1n
    @user-ne4bd3ry1n 3 ปีที่แล้ว

    норм!

  • @user-pm2ru6ir6n
    @user-pm2ru6ir6n 4 ปีที่แล้ว

    Вот и все )

  • @user-vq6nz7fd8k
    @user-vq6nz7fd8k 4 ปีที่แล้ว +1

    На сайте Интела есть документация по их ассемблеру.
    Любителям курить маны и знающим англиский язык, welcome:
    software.intel.com/en-us/articles/intel-sdm#combined
    Доки к самому FASM'у тута:
    flatassembler.net/docs.php

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

    Красиво, но нулевой байт в конце строки ни к чему, т.к. на него ориентируется лишь стандартная библиотека C (в пример методы из stdio.h, string.h ...); системные же вызовы (аля write, read) безразличны к нулевому байту и ориентируются на точное указание кол-во записываемых/читаемых байтов (3-им аргументом, соответственно в регистре edx для i386)

  • @user-mi9iy
    @user-mi9iy 3 ปีที่แล้ว +2

    А почему у тебя программа для x86-64, но при этом конвенцию системных вызовов ты используешь для 32бит ? В linux x86-64 exit это не 1, а 60 и аргументы там складываются не в rbx.

    • @ElliottGrosvenor
      @ElliottGrosvenor 8 หลายเดือนก่อน

      То же самое хотел спросить. Ведь в x64 системный вызов - это syscall, а не int 80

  • @user-kd3vy7vs8l
    @user-kd3vy7vs8l 4 ปีที่แล้ว

    Я пишу в mov rbx, 55 в exit, компилирую линкую, но ошибка не вылазит. у меня ubuntu
    Попытался вывести "hello, word" программу 100 раз перепроверил, скомпилировал, слинковал. запускаю ./main вообще ничего не выводит. Помогите

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

      Пропишите после выполнения программы в терминале:
      echo $?
      Отобразится код ошибки завершения программы. В моём же случае я использовал make скрипты, которые выводят на экран этот самый код.

  • @andreyisupov5797
    @andreyisupov5797 3 ปีที่แล้ว

    Чем меньше тем быстрее

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

    Ставлю лайк только за "врата штейна"

  • @sable8004
    @sable8004 3 ปีที่แล้ว

    Чем отлаживать FASM на Linux? gdb понимает не все символы просто, это проблема.

    • @user-cg2fw3kw9d
      @user-cg2fw3kw9d 3 ปีที่แล้ว

      Поробуйте применить edb.

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

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

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

    Мельком посмотрел. "
    " - это не прерогатива высокоуровневых языков. Это просто твой fasm не поддерживает экранирование символов и все тут. Попробуйка тогда nasm или yasm. А может даже в опциях и в fasm можно это указать. Но, насколько я знаю nasm поддерживает строковые литералы с экранированием...

  • @lackwindertonstreams7000
    @lackwindertonstreams7000 4 ปีที่แล้ว

    Какой у тебя дистрибутив ?

    • @morpache521
      @morpache521 4 ปีที่แล้ว

      Antergos вроде

    • @lackwindertonstreams7000
      @lackwindertonstreams7000 4 ปีที่แล้ว

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

  • @user-cg2fw3kw9d
    @user-cg2fw3kw9d 4 ปีที่แล้ว

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

    • @CryptoFunIT
      @CryptoFunIT  4 ปีที่แล้ว

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

    • @user-cg2fw3kw9d
      @user-cg2fw3kw9d 4 ปีที่แล้ว

      Спасибо! А какой командой его ставить на Xubuntu?
      P.S. Оказывается стоит по умолчанию.

  • @erievery
    @erievery 3 ปีที่แล้ว

    Почему в exit 1 это exit, а в start'e 1 - stdout? И где можно найти список этих значений?

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

      ; Завершение (eax=1) программы с кодом 0 (ebx=0).
      mov eax, 1
      mov ebx, 0
      ...
      ; Запись (eax=4) в стандартный поток вывода (eax=1).
      mov eax, 4
      mov ebx, 1
      ...
      Все эти системные вызовы являются 32-битными и работают они при помощи инструкции int со значением 0x80. Помимо 32-битных системных вызовов, существуют также и 64-битные, которые работают при помощи инструкции syscall. Список как 32-битных, так и 64-битных, системных вызовов под платформу Linux можете посмотреть здесь, как для ARM так и для x86 процессоров: chromium.googlesource.com/chromiumos/docs/+/master/constants/syscalls.md.

    • @erievery
      @erievery 3 ปีที่แล้ว

      Спасибо вам.

  • @user-fo2hc3pt9e
    @user-fo2hc3pt9e 3 ปีที่แล้ว +1

    Пойду ка питончик поучу

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

    Я может тупой но я не могу уже третий день заставить выполняться этот код на vs code в винде. Retroassembler не понимает этот синтаксис, fasm из терминала не выполняется

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

      Наверное уже поздняк, но в Винде другие прерывания.

  • @mosdomveteran9323
    @mosdomveteran9323 4 ปีที่แล้ว

    на 19 минуте я потерялся.

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

    Странно одно!
    Для функции print_string задается строка с '0' в конце и параметром len одновременно :)
    И функция прерывания 80h, принимает регистры в странном порядке.
    Регистр AX остался аккумулятором.
    DX был указателем на данные.
    СХ был счетчиком.
    Что стало не так?
    Адрес msg передается в регистре счетчика, а в регистре данных длина :)
    И это intel придумали, не я!

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

      Это в кернеле у линухе такая штука

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

    сначала пушим
    затем попим)))

  • @user-ts8lf4zy5k
    @user-ts8lf4zy5k 4 หลายเดือนก่อน

    це MATE?

  • @munisamuhammadiyeva97
    @munisamuhammadiyeva97 4 ปีที่แล้ว

    Здравствуйте мне тоже помогитe, 10bc +2ac

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

    Я один все время слышал Рбикс Рдикс Кслор??
    КСТАТИ НОРМ ВЫБОР С++ И PHP?

    • @Dalwofbskworus
      @Dalwofbskworus 4 ปีที่แล้ว

      Смотря для чего

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

    ладно, посмотрю я эти грёбаные врата штайна

    • @babyblade1
      @babyblade1 4 ปีที่แล้ว

      Орррррр

  • @fould9509
    @fould9509 3 ปีที่แล้ว

    врата штейна кайф

  • @wyacheslawbogdanyonok5147
    @wyacheslawbogdanyonok5147 4 ปีที่แล้ว

    Db- define byte, а не data byte

  • @artur-lg7wv
    @artur-lg7wv 4 ปีที่แล้ว +11

    А я думал с++ сложный )))))

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

      я тоже так думала... наивная ))

    • @xender2112
      @xender2112 4 ปีที่แล้ว +9

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

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

      @@xender2112 я так не считаю

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

      @@xender2112 Ага, также скажу, что ассемблер это очень сложный язык тк много архитектур, а к x86 вышло столько дополнений, что там инструкций тебе надо знать штук 700+. Так еще там нет ООП, и из абстракции разве-что метки и макросы, отчего это совсем не френдли яп

  • @OleksandrDobrovolskyi
    @OleksandrDobrovolskyi 3 ปีที่แล้ว

    Все.... Ахаааа, такого слова паразита ещё не встречал...

  • @linkor5000
    @linkor5000 3 ปีที่แล้ว

    Спасибо те мужик за туториал по ассемблеру но сделай пожалуста видос как добавить фасм в этот долбаный саблайм текст не впадло

  • @user-cg2fw3kw9d
    @user-cg2fw3kw9d 4 ปีที่แล้ว

    А кто придума делать в х86 так мало регистров, и чем это обусловлено?

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

      Если выражаться терминами книги Код (Чарльза Петцольда), то регистр есть некая защёлка, хранящая какое-либо число и с этим числом производящая действие. Для работы процессора достаточно одной защёлки, аккумулятора или другими словами регистра общего назначения. Действительно, если мы способны хранить и брать значения помещая их в регистр из оперативной памяти, то точно также мы можем производить с хранимым значением в регистре вычисления взятые из этой же оперативной памяти.
      Как пример, мы можем сложить числа следующим образом (представим, что у нас есть единственный регистр = A и некий язык ассемблера со своими правилами, не вдаваясь в архитектуру процессора, просто представим, что защёлка представляет 8-битное число, адресация оперативной памяти также представляется в виде 8-битного числа. Следовательно, если защёлка способна хранить только 8-битное число, то поместиться из адреса может только 8 бит. Адрес 0x00 = 8 бит, 0x01 = следующие 8 бит и тд.):
      mov A, [0x00] ; здесь берётся значение, хранимое по адресу 0, соответственно защёлка сохранило число
      add [0x01]; здесь для операции add мы говорим сложить число хранимое по адресу 0x01 с числом, хранимым в регистре A
      mov [0x02], A; сохраняем полученное значение в оперативную память по адресу 0x02
      Учитывая то, что возможно использование push и pop операций даже в 8-битном процессоре, вполне реально создать программу любой сложности имея только один единственный регистр, другой вопрос состоит лишь в том, каких усилий это потребует.
      Таким образом, защёлка или регистр - это собственная память процессора, увеличивая их количество увеличивается сам объём процессора, если углубляться в теорию всего этого, то увеличивается количество транзисторов. Поэтому ограничиваются всегда конечным числом регистров, что впринципе логично, а функцию хранения значений представляют оперативной памяти.
      Современные процессоры, хранят 64-битное число и их количество достаточно масштабно для хорошей оптимизации компиляторов.

    • @user-cg2fw3kw9d
      @user-cg2fw3kw9d 4 ปีที่แล้ว

      @@CryptoFunIT
      "Код" я читал, все это понимаю, спасибо. Жалко, что сразу не придумали RISC, где регистров выше крыши.

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

      Чем больше регистров тем длиннее будет машинный код команды и код программы в целом. Когда-то это было очень важно, сейчас уже не так критично.

  • @sdv2k11
    @sdv2k11 3 ปีที่แล้ว

    "как работает ассемблер и как работает язык ассемблера" это одно и то же (с) Мюллер

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

      Он же спустя 5 секунд объяснил в чём разница

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

    int 21h

  • @user-rp4hz7ng5n
    @user-rp4hz7ng5n ปีที่แล้ว

    Вам привет из Украины.
    Я уже підтоптаный. То есть старый.
    А старого собаку новым трюкам не обучишь.
    Я ассемблер уже не освою.
    Вы могли бы дизассемблировать файл для процессора 8086??

  • @user-gy3qs1sf1j
    @user-gy3qs1sf1j 3 ปีที่แล้ว

    db -- определить файл байт дефайн байт ане дата

  • @SamsungJ-gk8jw
    @SamsungJ-gk8jw 3 ปีที่แล้ว

    Блин,откуда такие знания?)

  • @iprogproscript5731
    @iprogproscript5731 4 ปีที่แล้ว

    Привет парни. Кто может дизасемблировать прошивку.? надо достать функцию одну и на си перевести

    • @khanuralgo4329
      @khanuralgo4329 3 ปีที่แล้ว

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

  • @user-sr2lf6xn5r
    @user-sr2lf6xn5r 3 ปีที่แล้ว

    Если бы ещё AT&T синтаксис был бы...

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

    я конечно извиняюсь, но кому нужен elf64? я думаю, все на винде сидят, а не на маках.

    • @Vic7bd
      @Vic7bd 8 หลายเดือนก่อน

      Я думаю он на чём привык и сидит и показал примеры, но в реалях нынешних Linux всё более и более захватывает разные отрасли, потому думаю пример тоже хороший, а кому надо под Windows - так про него тоже не мало примеров и перестроятся.