Тёмный

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

Псевдо Программист
Подписаться 12 тыс.
Просмотров 157 тыс.
50% 1

Сегодня мы напишем простую программу "Hello World!" на языке программирования Ассемблер (Assembly) x86.
Вы никогда не задумывались как именно работает компьютерная программа? Современные языки программирования по типу Python, C++, Java использую понятные для любого человека команды: "if/else" - постановка условий, "print" - вывод текста на экран и т.д. Однако компьютер не понимает таких команд, из-за чего приходиться переводить код в набор машинных команд, понятных лишь процессору. Именно об этом мы и поговорим!
Привет! Меня зовут Игорь. На моём канале ты сможешь найти уроки по нейронным сетям, визуализации данных и программированию в целом.
Моя цель - сделать программирование более доступным и понятным. Для просмотра моих видео вам не нужно высшее образование по Computer science. Все непонятные темы и термины я буду понятно объяснять и показывать на примерах.
Оставайся с нами, и чтобы не пропустить ни одного видео - подписывайся на канал и нажимай на колокольчик!
Команды из видео:
► nasm -felf64 hello.asm
► ld hello.o
► ./a.out
✅ Группа VK - bit.ly/VK_PseudoDev
✈️ Telegram канал - t.me/PseudoDeveloper
💲💲 Поддержи проект на Boosty - boosty.to/pseudodev
📖 Плейлист "Программирование на Практике" - • Программирование на пр...
📖 Плейлист “Нейронные Сети на Понятном Языке” - • Нейронные Сети на Поня...
📖 Плейлист "Изучение NumPy" -
• Изучение NumPy

Опубликовано:

 

10 фев 2021

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 365   
@PseudoDev
@PseudoDev 3 года назад
Ну что, как вам ролик?)
@bluxer4225
@bluxer4225 3 года назад
Класс.
@user-qj3wo8dz6o
@user-qj3wo8dz6o 3 года назад
Агонь
@Hlebopodobniy
@Hlebopodobniy 3 года назад
Понимаю, что эта тема может всем не зайти, но хотелось бы увидеть разбор языка в версии для DOS
@mightyminds5545
@mightyminds5545 2 года назад
Очень качественно. Не бросай канал
@umnikumnikov1338
@umnikumnikov1338 2 года назад
@@Hlebopodobniy ты конечно сказанул
@Satan-vf3ib
@Satan-vf3ib 3 года назад
Ты понимаешь, что разговор будет серьёзным, когда видишь ролик «hello world» на 9 минут
@JafiP
@JafiP Год назад
АХАХАХАХАХА
@Sus-uh7ve
@Sus-uh7ve 4 месяца назад
Да нормально,учителя информатики вообще умудряются растянуть тему "создание переменных на Python" на целые 45 минут..
@dambanikita219
@dambanikita219 4 месяца назад
​как то страшно стало 😨
@alexLeach_
@alexLeach_ 4 месяца назад
Для ассемблера этого мало)
@R-C-D
@R-C-D 3 месяца назад
​@@Sus-uh7ve правильно делают, если это в школе, школьникам нужно вбить теорию вголову, иначе никак
@maximterekhin6091
@maximterekhin6091 5 месяцев назад
Помню в 90-х ходил в компьютерный клуб: поиграть, покодить простые программы на Бейсике. И там был один человек, который мог программировать на ассемблере, в том числе игры, которые на Бейсике уже не напишешь. Он даже пытался объяснить мне свой код, до сих пор помню фразу "И вот тут я обнулил Аш Эль" Я надеюсь, он стал высококлассным программистом...
@iharnomad7747
@iharnomad7747 4 месяца назад
не, он хакнул пентагон и сейчас сидит в алькатрасе
@ilhanilhanDev
@ilhanilhanDev 4 месяца назад
Программить на компьютерном клубе, вот что меня напугало.
@trays1377
@trays1377 4 месяца назад
@@ilhanilhanDev ну да, программить сидя на клубе, а не в нем это страшно, можно даже упасть если потерять равновесие.
@sergeyb2823
@sergeyb2823 4 месяца назад
Аш Эль, это он на Z80 что ли программировал на спектруме? Так это ерунда, там всё просто было, и архитектура у компьютера простая понятная была и команд не очень много, все можно было легко запомнить.
@michael_voitovich
@michael_voitovich 3 месяца назад
Если HL, то этот чувак программировал для процессора Z80, который стоял в ZX-Spectrum. HL это не один регистр, а два 8-битных. В i8086 такого уже не было, потому что он был 16-битный.
@enli123
@enli123 5 месяцев назад
в унике сдаем лабы по ассемблеру, после него понимаешь что с++ очень понятный и легкий язык
@katastroff6011
@katastroff6011 4 месяца назад
Реально
@katastroff6011
@katastroff6011 4 месяца назад
С это ещё добрый язык для людей
@katastroff6011
@katastroff6011 4 месяца назад
А вот ты попробуй в Майнкрафте x86 архитектуру воссоздать
@pavelg9855
@pavelg9855 2 года назад
Почему-то думал, будет монстр на 100 строк, где чуть ли не из отдельных ноликов и единичек собирается каждый символ и отдельно записывается в ячейку памяти. А на деле оказалось не так все и страшно и даже почти понятно :)
@user-oe1xo9xm3e
@user-oe1xo9xm3e 11 месяцев назад
Ключевое слово "почти"
@maximleo1904
@maximleo1904 5 месяцев назад
Это только хелоу ворлд)
@KiraYoshikage555
@KiraYoshikage555 4 месяца назад
@@maximleo1904 я чела видел который на ассемблере тетрис написал
@yankeemustdie-4159
@yankeemustdie-4159 4 месяца назад
Ууу, я на паскале игру симулятор вообще в 15 строк уместил.
@petr07413
@petr07413 Месяц назад
​@@yankeemustdie-4159 какую?
@de6358
@de6358 3 года назад
Мама забери меня, мне страшно
@vuitlik5449
@vuitlik5449 Год назад
На заметку: инфы по ассемблеру мало на великомогучем, а вот на английском - вполне достаточно.
@aki7162
@aki7162 Год назад
Это касается не только ассемблера
@SkannerKaijy
@SkannerKaijy Год назад
@Seomastertop надо сделать компилятор для двоичного кода, всё остальное оскорбляет дух машины
@MrDlop
@MrDlop 5 месяцев назад
Ravesly сайт, там есть
@sir-Jiga
@sir-Jiga Месяц назад
​@@SkannerKaijy, Компилятор для двоичного кода не нужен)
@SanyaBelyi
@SanyaBelyi 8 месяцев назад
Помните, что все популярные языки программирования, были написаны на ассемблере, так сказать "Это база" и те, кто умеет ею обращаться, они реально боги, те кто пише на питоне, они крепостные крестьяне
@slavaandreev1494
@slavaandreev1494 5 месяцев назад
Языки на си пишутся, разве нет?
@slavaandreev1494
@slavaandreev1494 5 месяцев назад
Точнее даже не языки, а компиляторы и интерпретаторы
@krempay4ik371
@krempay4ik371 5 месяцев назад
​@@slavaandreev1494и то и другое написано на си и плюсах, увы
@qwertererer9029
@qwertererer9029 5 месяцев назад
​@@slavaandreev1494а си на чем написан? На ассемблере
@anon_commentator
@anon_commentator 5 месяцев назад
Современные языки программирования пишутся не на асм. Хотя, думаю он таки полезен для всяких задротов, которые любят дизасемблировать файлы (ака условных пиратов). Это не только весело, но иногда и полезно. Хотя учиться этому суперхаккингу наверняка очень долго
@user-jd8pz3lz6s
@user-jd8pz3lz6s 5 месяцев назад
На самом деле имея под рукой мануал по архитектуре процессора и описанием команд, то на асме программировать чертовски просто, только любая более или менее серьезная программа превратится в огромное полотно команд, в котором после недельного перерыва уже не разберешься 😂
@user-jz8ze1jm6v
@user-jz8ze1jm6v 4 месяца назад
А Джон Кармак на асме вершил одну революцию в видеоигровой индустрии за другой.
@Fifasher2K
@Fifasher2K 4 месяца назад
И не удивительно.
@Maxim9575
@Maxim9575 4 месяца назад
@@user-jz8ze1jm6v что за сказки, исходный код его движков это С
@user-sk2hu5om3n
@user-sk2hu5om3n 3 месяца назад
Так вот это и есть плата за быстродействие приложения. Дольше промучаешься, зато требования к быстродействию железа на порядок уменьшаться.
@user-jd8pz3lz6s
@user-jd8pz3lz6s 3 месяца назад
@@user-sk2hu5om3n В теории это может и так, вот только вряд ли ты будешь писать супер идеально оптимизированный код (лучше чем оптимизирует его компилятор)
@I-find-John-Titor
@I-find-John-Titor Год назад
Спасибо! Многие моменты стали понятны, продолжайте делать ещё видео про язык ассемблера
@Eben__-ex1zm
@Eben__-ex1zm 3 года назад
Знакомый - сеньор : начни учить программирование с ASSамблера Я смотря как написать "хэллоу ворлд": Пиздец...
@mainstreamer0905
@mainstreamer0905 2 года назад
Нет, ассемблер наилучший вариант для новичка. Да, после ассемблера всё будет даваться легче, а также будет понимание работы компьютера. Что я вообще говорю? После изучения ассемблера можно будет писать под любой микроконтроллер или написать компилятор или интерпретатор под собственный язык!
@Nebrituy
@Nebrituy 2 года назад
@@mainstreamer0905 можно, а смысл? Зачем создаются высокоуровневые языки программирования? Почему они становятся популярными, а ФОРТРАН и АССемблер нет? ВРЕМЯ?!! Пока ты выучишь язык, напишешь на нем мало-мальски толковую программу, любой старшеклассник уже успеет такую прогу сваять раз 20.
@matescha649
@matescha649 2 года назад
Думаю лучше начать с Phyton, он лёгкий и если его выучить то такие языки как с++, джава, и т.д. будут даваться легко.
@PseudoDev
@PseudoDev 2 года назад
Не совсем согласен. Вообще нужно отталкиваться от того: "а что ты будешь разрабатывать?" Но если брать общую температуру по палате, то лучше и вправду начать с Си образных языков, т.к. их архитектура самая шаблонная для большинства ЯП. Про Python уже такое не скажешь. Upd: крч, надо будет сделать видос на эту тему, уж очень она занимательная 😁
@Eben__-ex1zm
@Eben__-ex1zm 2 года назад
Прошло 7 месяцев. Я забил на карьеру прогера и пошел на завод. Держу в курсе )
@mishafurru
@mishafurru 4 месяца назад
Мне, как человеку знающий Python3.12 и изучающий C++, было АБСОЛЮТНО понятно, о чем шла речь. И я совсем не устроил суицид после этого видео.
@mr.hollidey5454
@mr.hollidey5454 2 года назад
Я один, с каждым новым вопросом автора, ждал ответ "х*й его знает"?
@1968.5
@1968.5 2 года назад
а подход хорош! Это, как научится играть три аккорда на гитаре. Дальше, либо так и будешь во дворе играть, либо Опарина с Остро догонять начнешь. Для первого понимания отлично.
@msfortune1337
@msfortune1337 5 месяцев назад
Кстати интересный факт: Большинство фундамента БИОС написаны на ASM И лишь малая часть на C (UEFI)
@stikmango2.032
@stikmango2.032 5 месяцев назад
Впринципе логично, так как непосредственно с железками работаем
@ryanf6840
@ryanf6840 4 месяца назад
А с учётом компиляции то все
@ockuepie
@ockuepie 3 года назад
Ты выпустил видос🥳🥳🥳. Думал не доживу, если честно
@MsTim159
@MsTim159 2 года назад
Советую всем интересующимся поиграть в TIS-100 и на этом закончить знакомство с ассемблером.
@veeronten4886
@veeronten4886 Год назад
Годнота
@Zargarov
@Zargarov Год назад
Из всех вариантов выбрали самый извращённый - асм под эмулятором линукса на винде. Сэр знает толк в извращениях.
@YuraSamusenko
@YuraSamusenko Год назад
Если виндовс еще и в virtualbox, тогда вообще шик
@seekyboi23
@seekyboi23 Год назад
Это не эмулятор
@RaptorT1V
@RaptorT1V 5 месяцев назад
​@@YuraSamusenkoахахаха у меня именно такой случай
@SergMirny_yt
@SergMirny_yt 3 года назад
Скажите а где найти урок - ассемблер за 5 минут? А то у меня собес на асм разработчика через 10 минут. Да и ещё вопрос - как выйти из vi?
@PseudoDev
@PseudoDev 3 года назад
Могу за тебя свечку в церкви поставить)
@SergMirny_yt
@SergMirny_yt 3 года назад
@@PseudoDev если за здравие - тогда ок 😁
@PseudoDev
@PseudoDev 3 года назад
(Дополнение и изменённому комменту): Погодь, Vi или Vim 🙃? Если Vim, то сперва нужно сохранить текст ":w (тут указываешь название, если этого ещё не делал)", а потом просто выходишь командой ":q" Можно ещё сделать всё за одну команду ":wq", так будет быстрее)
@SergMirny_yt
@SergMirny_yt 3 года назад
@@PseudoDev спасибо. Это шутка конечно. Я не помню точно, т.к. не пользуюсь ни ви ни вим. Но я выходил м помощью :wq, если не ошибаюсь. Я тоже программист любитель-самоучка пишу на pyqt ну и чистом пайтоне. Есть пет-проджект программки для хобби (для радиолюбителей) linuxlog.su - сайтик пректа. И пользуюсь пайчармом, т.к. использую его плюшки
@user-bw7ov8ip5w
@user-bw7ov8ip5w 2 года назад
У Гоши Дударя)
@raal8438
@raal8438 9 месяцев назад
Дружище!!! как приятно слушать человека который точно знает о чем говорит! Классс" .... но счастье было так близко! так возможно ))) все что ты пишешь на экране наверно своего дисплея, все в черной темноте" бывает видно только когда ты выделяешь фрагмент,так что кода этой супер программы я так и не увидел" Неужели только я? непонятно, щас гляну что другие пишут
@MikhailGoncharov-tl4cr
@MikhailGoncharov-tl4cr 3 месяца назад
Великолепный обзор. У тебя талант.
@user-kj7yz4sl2o
@user-kj7yz4sl2o 2 года назад
мне кажется надо и пайтон и АСМ паралельно изучать. Синтакс уж точно не перепутаешь. Да и надоело мелочится пошел в пайтон, захотел попотеть в АСМ. Ну если АСМ могешь то и другое очень быстро привьется. На собеседовании можно самому уже спросить, а что такое Аккумулятор и сказать потом садись 2.
@criterrors
@criterrors 7 месяцев назад
Да ассемблер наоборот самый простой язык. Сложность заключается лишь в том, как собрать из таких элементарных команд что-то полезное. Ну и литнратуры по нему предостаточно. Так что автор тут не совсем прав.
@user-jz8ze1jm6v
@user-jz8ze1jm6v 4 месяца назад
Но только большая часть этой литературы написана во времена DOS или Windows XP.
@yuzeless493
@yuzeless493 4 месяца назад
​@@user-jz8ze1jm6v думаешь ассемблер сильно изменился?
@user-jz8ze1jm6v
@user-jz8ze1jm6v 4 месяца назад
@@yuzeless493 асм не изменился, а ОС, поверх которой работает программа, радикально изменилась.
@yuzeless493
@yuzeless493 4 месяца назад
@@user-jz8ze1jm6v при чем тут ОС? Ассемблер работает с инструкциями процессора, хоть и через прослойку виртуализации. Ни архитектура процессоров, ни ассемблер не изменились
@euginekosenko2268
@euginekosenko2268 4 месяца назад
​@@yuzeless493там до херища постоянно меняется. Лично я сломался после vliw, и это было ещё до 64 разрядов...
@user-th1uh4tl6b
@user-th1uh4tl6b 4 месяца назад
когда увидел ролик о hello world на 9 минут: ваша душа теряет решимость, ведь теперь вы боитесь ассемблер
@user-xc3sg4kh6w
@user-xc3sg4kh6w 2 месяца назад
Привет, видео прикольное, но над ним действительно только посмеяться(о чем ты указал в начале видео). Если интересно для будущих роликов могу тебе накидать инфы по ASM, могу даже чему то научить твоих подписчиков(через тебя естественно), если хочешь напиши мне. Кстати ты пишешь не на ASM x86, а на ASM x64. Регистры с припиской R (RAX, RDX, RDI и т.д.), это 64-разрядные регистры, они есть у процессоров архитектуры x64, в архитектуре x86 регистры 32-разрядные (EAX, EBX, ECX и т.д.).
@user-fb8ud7rv6m
@user-fb8ud7rv6m 2 года назад
А можешь сделать видео про GNU ассемблер(не обязательно Hello world!)
@DmitriyUV
@DmitriyUV 5 месяцев назад
Это же код вроде под x64 и при компиляции ты формат указывал elf64. На x86 я помню вообще делают с помощью int прерываний. Когда-то я немного учил ассемблер под DOS 😄
@user-yu7jn7fm8g
@user-yu7jn7fm8g 5 месяцев назад
тык х86 включают в себя 32-битные и 64-битные процессоры.. х86 можно сравнивать только с arm процессорами (получили огрумную популярность в мобилках) и может ещё с какими, если есть, НО никак не с 32-64 (потому что армы тоже бывают 32-64-битные)
@DmitriyUV
@DmitriyUV 5 месяцев назад
@@user-yu7jn7fm8g так у x64 регистры по другому называются ведь или я что-то путаю
@hedgegod8644
@hedgegod8644 6 месяцев назад
Подожди, байт либо от 0 до 255, либо от -128 до 127
@user-pw8zv8fr2b
@user-pw8zv8fr2b 5 месяцев назад
Все верно
@animath2662
@animath2662 2 года назад
Метка -- просто число, чаще всего адрес... Никакая это не функция. Метку уж скорее и можно сравнить с переменными. При компиляции она просто заменяется на число.
@hlibprishchepov322
@hlibprishchepov322 Год назад
А разве обычные прыжки и прыжки в операциях сравнения не по разному работают?
@nikgghul
@nikgghul Год назад
Я в ассемблере неплохо шарил.до 20- и лет.а потом : работа,семья.некагдо стало.ща 43 .всё надеюсь время будет
@softgame379
@softgame379 Год назад
Вот создаю ос на c и asm и ты мне очень помог
@PseudoDev
@PseudoDev Год назад
Правда? Офигенно! Очень приятно слышать, спасибо 🙂
@user-jo4ij9fg1d
@user-jo4ij9fg1d 3 года назад
Панч в сторону питона за панчем. 😂
@No_name_music
@No_name_music 2 года назад
Мне кажется что питон мало чем от английского отличается. Помойка обыкновенная.
@php1036
@php1036 2 года назад
@@No_name_music да, согласен, настоящие языки программирования должны быть на русском!
@user-kj7yz4sl2o
@user-kj7yz4sl2o 2 года назад
@@php1036 Есть же НЛП которые продвигают могучие инфоцигане, деньги им то несут значит программирование рабочее
@digital0cean
@digital0cean 2 года назад
@@php1036 1C
@PianoElipse
@PianoElipse 3 года назад
А если по нашему mov приёмник, источник, но можно и так :)
@ushid_
@ushid_ 3 года назад
Го топ самых необычных языков программирования (там какие нибудь Chiken и ёптаскрипт)
@PseudoDev
@PseudoDev 3 года назад
А почему бы и нет) Я вас услышал
@user-bn5bm4gw4e
@user-bn5bm4gw4e 3 года назад
ёптаскрипт вроде компилирует в js, не?
@pain.6766
@pain.6766 3 года назад
@@user-bn5bm4gw4e ёптаскрипт это просто куча дефайнов, нет?
@cattitude2
@cattitude2 3 года назад
@@pain.6766 а чё
@pain.6766
@pain.6766 3 года назад
@@cattitude2 ?
@1234MB
@1234MB 6 месяцев назад
А я только ассемблер и знаю🤣🙃 Вроде чётко все объяснил...
@nombreapellido9851
@nombreapellido9851 4 месяца назад
Более ранний ассемблер до появления ПК. 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 // Кстати, до сих пор используется даже по прошествии более полувека. Возможно немножко напутал, но суть не менятся: сохранили регистры, назначали базовый регистр, вывели сообщение, возратили прежние значения регистров, обнулили код возврата, выход из программы, а в конце поле для сохранения регистров.
@user-uy5kv7vx1e
@user-uy5kv7vx1e Год назад
А вот если придумать нейронку которая будет шпарить код на асемблере и можно написать програму для контретного устройства проца и памяти озу например но вот большинство процов закрытые за исключение arm и risc v
@user-tr2wz3ci8o
@user-tr2wz3ci8o Год назад
Только говнокода на ассемблере нам не хватало
@andrewgrad7681
@andrewgrad7681 3 месяца назад
Автор ролика по поводу инфы для ассемблера не прав, просто искать не хотел. А кому интересно тот найдёт. На том же Авито или барахолке почти любого города можно попробовать найти старые книги про ассемблер. И лет 10 назад с этим вообще никаких проблем не было😂 кому интересно, лично в моем распоряжении есть книга: "Программирование на языке ассемблера для персональной ЭВМ фирмы IBM" за авторством Д. Брэдли.
@GamePlayShare
@GamePlayShare 2 года назад
Нужно было запилить под ДОС
@user-zy6bg9qx2o
@user-zy6bg9qx2o Год назад
ты крутой чел я твой фанат
@finimensniper3322
@finimensniper3322 Год назад
Я который отлично знаю с# и изучаю python: А что так можно было))?
@CRITICALHITRU
@CRITICALHITRU 8 месяцев назад
Хорошее видео для людей, кто в детстве и юности кукарекали про потенциал кончолей и что оптимизацией игр под железо устаревшая на релизе лепёшка с вентилятором будет тянуть новинки минимум 8 лет.
@user-rp4hz7ng5n
@user-rp4hz7ng5n Год назад
Извините, а Вы можете решить обратную задачу??
@jhakfresko8151
@jhakfresko8151 2 года назад
А что идёт ещё ниже чем ассемблер? Ведь слова-команлы (mov,rdx....) тоже както создали. Я не программист но стало интересно.
@nailocore185
@nailocore185 2 года назад
ассемблер это не совсем язык, это семейство мнемоник, где за короткими словами типа mov стоят прямые инструкции процессору. Компилятор транслирует мнемоники, немного упрощая жизнь программисту тем, что позволяет за той же мнемоникой mov спрятать несколько разных инструкций, предназначенных для переноса данных из разных типов операндов. Или позволяет написать макрос, который можно подставлять в определенное место программы, чтобы 100 раз не писать одно и то же и тд. Отвечая на вопрос что ниже ассемблера - писать код прямыми инструкциями процессора. И первое что ты так напишешь - простейший компилятор ассемблера, чтобы сэкономить время для написания более сложного компилятора :)
@I-find-John-Titor
@I-find-John-Titor Год назад
1011011011101101100111101101011110110100011101111011011101111011011101...
@Oktoberkun
@Oktoberkun Год назад
Ниже только перфокарты.)
@YuraSamusenko
@YuraSamusenko Год назад
@@Oktoberkun Еще ниже переключатели для задания последовательности битов
@Mr-Phokus
@Mr-Phokus Год назад
@@YuraSamusenko ещё ниже проводки и лампочки
@hardmakertv6048
@hardmakertv6048 2 года назад
я что-то не понял. В названии х86, а использует х64 регистры (rax, rbx....) или я что-то не понимаю?
@YuraSamusenko
@YuraSamusenko Год назад
Изначально появилась архитектура x86, которая вообще была 16-битной. Потом ее апгрейднули до 32 бит, новую архиткектуру назвали IA-32. А когда апгрейднули до 64 бит, для отличия стали называть x86_64, но сокращенно все эти архитектуры могут называть просто x86
@lanikanani
@lanikanani 3 месяца назад
Вопрос: как у тебя в 1 байт влезло столько значений от -128 до 255? Всего 256 значений
@PseudoDev
@PseudoDev 3 месяца назад
Это константное значение, в котором мы можем определить знаковый ли этот байт или беззнаковый. Логично, что если у нас есть знак, что мы резервируем первый бит под знак, и диапазон у нас от -128 до +127. Но мыж можем определить его и без знака, тогда диапазон у нас от 0 до 255
@daytanminecraft327
@daytanminecraft327 20 дней назад
Это язык от которого чувствуешь физическую боль.
@user-wp7kz5hn8m
@user-wp7kz5hn8m 5 месяцев назад
Топ 1 язык программирования для новичка:
@thefikus1275
@thefikus1275 3 года назад
Есть сиалетний преподаватель?
@juicetree
@juicetree 2 года назад
Страшный сон питониста
@CoderingMojangDev
@CoderingMojangDev 9 месяцев назад
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
@phil2964
@phil2964 2 года назад
👍👍👍
@danilegovich
@danilegovich Год назад
Пайтон же интерпретируемый язык программирования, а не компилируемый
@luckyway3823
@luckyway3823 5 месяцев назад
На 1 курсе мфти (хотя я физик) был ассемблер, это был ужас.
@staf5496
@staf5496 5 месяцев назад
Даже вывести одну букву на середину экрана и заставить мигать - это тонна текста
@1982Crazik
@1982Crazik 6 месяцев назад
Давайте по хардкору, змейка на ассемблере
@kingmang_it
@kingmang_it 6 месяцев назад
На гитхабе уже повторяли 100 раз
@BearUnderCheese
@BearUnderCheese Год назад
Ирония в том, что я знал все термины, которые звучали в видео... Как будто на программирование у меня не ушло 4 года... PS: Питонисты перевернулись в гробу.
@itsvoron6081
@itsvoron6081 3 месяца назад
Ассемблер не такой уж сложный если изучать архитектуру под него, и если сравнивать с C++, да я на серьезе. C++ - это огромный язык, который имеет, хоть гибкий и удобный, но сложный в осваении инструментарий, к ассемблеру быстро прывыкаешь, потому что по масштабам он в десятки раз меньше плюсов, но естественно абстрактные идеи в ассемблере тяжело написать, нежели на плюсах
@samboru997
@samboru997 2 года назад
Сделай подробное видео как установить ассемблер пж! Мне нравится этот язык, помогиииии
@ViRuS889
@ViRuS889 Год назад
Надеюсь это просто шутка, а не реальный вопрос
@yankeemustdie-4159
@yankeemustdie-4159 4 месяца назад
Коротким получится, видео, там надо-то в командной строке написать дебуг и нажать энтер )))
@jiz842
@jiz842 2 года назад
привет первокурсникам итмо, почему ничего не понятно?
@tomskiy6514
@tomskiy6514 2 года назад
После просмотра данного видео появилось желание повеситься. Автору вагон конфет и цистерну чая😊
@YuriSalmanov
@YuriSalmanov 4 месяца назад
Я тот самый 100-летний препод из МФТИ. Задавайте вопросы
@yankeemustdie-4159
@yankeemustdie-4159 4 месяца назад
Есть ли жизнь на Марсе?
@anton__k
@anton__k 3 месяца назад
вы своё столетие в какой системе счисления отмечали?
@lordskynet4403
@lordskynet4403 3 месяца назад
@@anton__k😁
@joehaar1466
@joehaar1466 2 года назад
Ни__я не понял, но очень интересно
@NickY_Msk
@NickY_Msk 7 месяцев назад
Байт может принимать значения от -128 до 127, а не 255
@mhalaider6046
@mhalaider6046 6 месяцев назад
unsinged byte будет принимать значения от 0 - 255. Все операции в компьютере выполняется в 16-ричной системе счисления и, если ты не знал, но отрицательное значение в данной системе существует как бы очень большим числом. А все регистры принимают только unsigned значения.
@user-ur3mc6hb5d
@user-ur3mc6hb5d 6 месяцев назад
​@@mhalaider6046шестнадцатеричная используется из-за ее удобного представления, чем двоичной или десятичной
@mhalaider6046
@mhalaider6046 6 месяцев назад
@@user-ur3mc6hb5d логично, а к чему это ?
@vas_._sfer6157
@vas_._sfer6157 3 года назад
Python не компилируется в ASM. С - не низкоуровневый. Программа на ASM не выдает ошибку компиляции.
@user-wx1ns5hf3h
@user-wx1ns5hf3h 3 года назад
При компиляции: *мусор после выражения* *мусор* после компиляции не верно написанного кода: *ошибка сегментации*
@noname-wn9xk
@noname-wn9xk 2 года назад
C - низкоуровневый
@vas_._sfer6157
@vas_._sfer6157 2 года назад
@@noname-wn9xk C - язык программирования высокого уровня. ASM - язык программирования низкого уровня, так как существует в рамках конкретной аппаратной платформы. И Python тоже язык программирования высокого уровня.
@user-ds7uc7ci4f
@user-ds7uc7ci4f 8 месяцев назад
@@vas_._sfer6157, если С ставить вместе с ассемблером, то да, С - самый, самый, САМЫЙ высокоуровневый. Для меня сейчас С - очень даже высокоуровневый. А для тех, кто пишет на Python, Javascript и т.д., он низкоуровневый, так как там есть прямое обращение к памяти, вернее манипуляция с памятью, а в высокоуровневых нет
@nakidai
@nakidai 2 года назад
Чее то я нифига не понял, разве имена секций не в начале стоят?
@YuraSamusenko
@YuraSamusenko Год назад
Да и строку под меткой message надо было бы в секцию .data, как и код под меткой _start в секцию .text, а он слегка хуй знает как указал эти секции
@user-vt3cq8eu8s
@user-vt3cq8eu8s 3 месяца назад
Лицо питонистов представили?
@putin_huesos
@putin_huesos 2 года назад
Я оруууу.. видео топ
@apple1
@apple1 5 месяцев назад
Также питон: print(‘hello world’)
@mik34329
@mik34329 4 месяца назад
Также питон:*прошло десять дней* hello world Ты допустил ошибку
@Painkiller413
@Painkiller413 4 месяца назад
C++: нужно сделать отдельный блок🤓 Python:всего лишь одна строка
@euginekosenko2268
@euginekosenko2268 4 месяца назад
Также HQ9+: H
@euginekosenko2268
@euginekosenko2268 4 месяца назад
​​@@Painkiller413HQ9+: всего лишь один символ.
@PTGScompanyYT
@PTGScompanyYT 6 месяцев назад
Вижу, ты смотришь комментарии) В общем, хочу начать учить ASSемблер. Инфы в инете не найти, курсы быстро забрасываются, мало что объясняют, как вообще кодить на этом всём... Хочу выучить низкоуровневый язык или даже несколько, чтоб с нуля написать ос без интерфейса по типу DOS. Знаю, что сложно, но я готов к такому. В общем, подскажи, если сможешь, с чего можно этот проклятый язык изучать? По нему рил инфы не найти, как будто он мёртвым грузом лежит (хотя возможно так и есть, все же щас на высокоуровневых сидят)
@PseudoDev
@PseudoDev 6 месяцев назад
Нам основы ассемблера преподают в вузе. Мне сложно подсказать какие-то определённые сайты, так как я их использую в основном для того чтобы дополнить информацию преподавателя
@Pavel.Maslennikov
@Pavel.Maslennikov 5 месяцев назад
На сайтах вряд ли найдешь полный курс. Его обычно из книг преподают. Так что ищи, читай)
@PTGScompanyYT
@PTGScompanyYT 5 месяцев назад
@@Pavel.Maslennikov спасибо
@d_art_s9632
@d_art_s9632 4 месяца назад
поищи туторы на английском, лично один такой сейчас смотрю но он 2-часовой) мозг инфу зажёвывает знатно, а всё что я хотел это заняться ромхакингом на гба (в целом даже попробовал себя в этом, но всё что я сделал это поковырял визуал, авось с изучением смогу менять карты)
@yankeemustdie-4159
@yankeemustdie-4159 4 месяца назад
проблема скорее всего в том, что производители процессоров неохотно делятся списками инструкций для своих процессоров. Если люди начнут сами себе ОС писать это же какой рынок рухнет. Правда в РФ его итак не было никогда )))
@riancholli9456
@riancholli9456 2 года назад
Тем временем питон: print(‘Hello World’)
@anton__k
@anton__k 5 месяцев назад
Самое короткое - на shell-языке (и не надо дополнительно ничего устанавливать в систему): echo Hello World
@AXSMEBEL
@AXSMEBEL 4 месяца назад
​@@anton__kмне кажется или шелл это не язык, а echo вполне себе самостоятельная программа, которая в виде бинарника лежит себе на диске?
@euginekosenko2268
@euginekosenko2268 4 месяца назад
Тем временем HQ9+: H
@anton__k
@anton__k 3 месяца назад
@@AXSMEBEL , возможно, зависит от реализации оболочки, но в Windows и Linux echo - это команда оболочки. Хотя в Linux и есть бинарник /bin/echo, в скриптах echo обрабатывается как встроенная команда.
@AXSMEBEL
@AXSMEBEL 3 месяца назад
@@anton__k если вы выполните в линуксе команду `which echo`, то внезапно увидите путь к бинарному файлу (скорее всего в /usr/bin)
@putman77
@putman77 Год назад
Инфы по асму полно. И байт может принять значения от минус 127 до 128, а не 256. Но спасибо, доля правды в ролике есть.
@raal8438
@raal8438 9 месяцев назад
неправильно! не знаешь" садись - два! ))) Байт может принимать значения в диапазоне 00h .. FFh или 0 .. 255 а целое вещественное число в байте это то что ты нарисовал )))
@putman77
@putman77 9 месяцев назад
@@raal8438 Вы невнимательно смотрели ролик. На 4-й минуте говорится о том, что байт может принимать значения от -128 до +255 вот ссылка - ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-00-hcWc7_fA.html Именно это я и имел в виду. И да будет Вам известно, что не только от 0 до 255 байт бывает, но и от -127 до +128, даже от -10 до +245, тут нет ограничений, это ассемблер. Каким захотите, таким и будет этот байт. В ролике много ошибок, как то - С++ является по словам автора низкоуровневым. Но смотреть приятно, вспоминают настоящие языки еще =) Всем добра.
@CRITICALHITRU
@CRITICALHITRU 8 месяцев назад
@@putman77 С++ по уровню такой же как С?
@mishafurru
@mishafurru 7 месяцев назад
Ну вот смотри, и на Питоне, и Си++ можно: делать сайты, делать игры (2д и 3д), делать вычесления, страдать фигнёй, создавать нейронки, делать программы для ~роботов~ (ну типа языка Arduino). Отличия: Питон - лёгкий язык, но медленный, НО ЕСЛИ ЮЗАТЬ НУМБУ, ТО ПИТОН КАК СИ++ БУДЕТ ПО СКОРОСТИ!) Си++ - сложный язык, но быстрый изначально. Также, Си++ ОЧЕНЬ МЕГА СУПЕР ДУПЕР ПУПЕР МЕГА ТУПЕР ГИБКИЙ. Поэтому он ну ооочень сложный. Хотя по функциональности они примерно одинаковые. Но Си++ использует Анреал Энжин, а Питон юзает сам себя, так что... Да ваще насрать, изучай обы языка, их вообще совмещать можно, скачиваешь Cython и кайфуешь ат жизни нахер!!!!
@doodocina
@doodocina 7 месяцев назад
@@putman77ну, от -10 до 245 это конечно бред) -127 - +128 это результат использования дополнительного кода числа, вида представления отрицательных чисел
@mangrogred
@mangrogred Год назад
вот менее костыльная версия на 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 Год назад
А и ещё, я ассемблер использую только для bootload или других низкоуровневых приколов а так я пишу на c ПРОШУ ЗАМЕТИТЬ НЕ НА C++ А НА C ЭТО РАЗНЫЕ ВЕЩИ!
@hlibprishchepov322
@hlibprishchepov322 Год назад
@@mangrogred понимаю, как я не гуглю си, мне вечно подсовывают с++
@daniilaivaz923
@daniilaivaz923 5 месяцев назад
DOX BOX очь удобная ide для асемблера
@Tabachnyj_Kapitan
@Tabachnyj_Kapitan 6 месяцев назад
Когда вижу как печатают голубым по чёрному задаюсь вопросом - А гуманоид ли перед нами?? Или красным по чёрному. Короче я знаю как вычислять пришельцев с Нибиру. И не благодарите! ))
@PianoElipse
@PianoElipse 3 года назад
так ошибочка (4:20), не 255 (так как все значения в db, исключая ноль), а +127
@PseudoDev
@PseudoDev 3 года назад
байты со знаком в диапазоне от -128 до +127; беззнаковые байтовые значения в диапазоне от 0 до 255
@PianoElipse
@PianoElipse 3 года назад
@@PseudoDev тогда зочим такой странный диапазон указывать?
@PseudoDev
@PseudoDev 3 года назад
Но ведь мы можем указывать числа в этом диапазоне?) А вот почему он такой странный... Ассемблер 🙃
@PianoElipse
@PianoElipse 3 года назад
@@PseudoDev Многие говорят, что асямбля ломает мозг, как раз наоборот, он его структурирует. И по этому я только на нем и пишу. Ну а так можно было бы разграничить эти два диапозона, а то с самого начала новечкам мозг не хочется домать :д
@user-wx1ns5hf3h
@user-wx1ns5hf3h 3 года назад
@@PianoElipse хмм. Не осуждаю, но странный выбор, как основного языка программирования:) Как минимум из-за громоскости кода допустим для написания программы, которая перемножает многомерные матрицы, отделяя и сортируя числа по эквивалентности. Написать подобное на си, ну или на том же python(тут все решается подключением одной библиотеки) не составит труда, а вот на ассемблере ты потратишь не менее 500 строк кода в лучшем случае, написав пару "модулей" на том же ассемблере, формируя тот же самый "си", но под свои нужды. Да, с тобой я полностью солидарен, что ассемблер структурирует мозг, порой после многих часов в IDA, я начинаю мыслить и делать все так же последовательно, а сверстники не могут понять, что со мной сегодня опять не так(гуманитарные предметы сразу же отходят на второй план, из-за невозможности нормально мыслить). Однако надо знать грань между одним и другим. Если нужна МАКСИМАЛЬНАЯ производительность, то стоит присмотреться к чистому си, без библиотек(некоторые библиотеки, написанные криворукими, могут выполняться по 1000 тактов на простое действие, которое можно было выполнить за 100 тактов), он ПРАКТИЧЕСКИ равносилен коду на ассемблере написанному от руки, ибо компиляторы нынче намного умнее, чем в те же 2000-ные и умеют оптимизировать в разы лучше, чем может написать человек.
@css3971
@css3971 5 месяцев назад
Также пайтонисты: print("Hello, World!")
@euginekosenko2268
@euginekosenko2268 4 месяца назад
Также эзотерики: H
@subaruvalit5931
@subaruvalit5931 5 месяцев назад
Только мне показалось что у автора какой то фреймворк похожий на asm ? И сама теория весьма запутано рассказана...
@anton__k
@anton__k 5 месяцев назад
6:45 - почему вдруг строка "Hello World!" с символом перевода имеет длину 14 байтов (mov rdx, 14)?! 13 же! В этой программе такая неточность некритична (возможно, там нули из-за выравнивания), но вообще на экране может появиться "мусор".
@user-ir8nd6mj2b
@user-ir8nd6mj2b 5 месяцев назад
Мб он ещё null terminator учёл (нулевой байт \0 в конце строки)
@anton__k
@anton__k 5 месяцев назад
@@user-ir8nd6mj2b, а где там нулевой байт? Это ж не C/C++, где все строки автоматически заканчиваются нулём. Ассемблер всё "понимает" буквально. Я думаю, этот фрагмент позаимстовавали из другой обучалки, где была запятая между словами, и там 14 было бы правильной длиной.
@dm12822
@dm12822 Год назад
55:45
@user-xm3ml7mm7b
@user-xm3ml7mm7b 5 месяцев назад
Print("Hello World")
@13hubassembly59
@13hubassembly59 Год назад
можно же просто сделать: 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 5 месяцев назад
Вопрос нахуя так делать когда можно просто Print('Hello World!')
@euginekosenko2268
@euginekosenko2268 4 месяца назад
@@thezzzzzz можно ещё проще, H
@kawaiiUwUcute
@kawaiiUwUcute 10 месяцев назад
Я с первых 15 секунд устал
@LittleEntity
@LittleEntity Месяц назад
+ новые хакеры. Их история началась как и все... С hello world, с помощью rax, 1.....
@Anaprilin1
@Anaprilin1 4 месяца назад
это конечно ассемблер, только всю работу сделала операционка
@user-gq8oy3ht9r
@user-gq8oy3ht9r 2 года назад
когда хотел написать hello world но создал код по призванию дьявола
@romandonw
@romandonw 4 месяца назад
Вот про диапазон байта бан.
@user-zx1er7uy1c
@user-zx1er7uy1c 3 года назад
Можно подумать - сдаешь экзамен! А подробно рассказать про компилятор и в каком редакторе пишешь программу? Здесь оценивают то что ты выкладываешь а не складно говорить и писать.
@NuShtosh
@NuShtosh 2 года назад
Чтобы получить работу, нужно пройти собеседование.
@user-kd3uo4js2w
@user-kd3uo4js2w 7 месяцев назад
Смотри внимательно... точнее слушай.
@user-qc9dr9tg5d
@user-qc9dr9tg5d 3 месяца назад
Ассемблер создан для кирпичей и картошки
@user-kd3uo4js2w
@user-kd3uo4js2w 7 месяцев назад
Не братан, нет здесь прфесоров из МФТИ...
@user-ky8oj5jt7i
@user-ky8oj5jt7i 2 года назад
Си это тоже высокоуровневый язык.
@noname-wn9xk
@noname-wn9xk 2 года назад
Нет
@user-ky8oj5jt7i
@user-ky8oj5jt7i 2 года назад
@@noname-wn9xk для тебя нет.
@GUranium75
@GUranium75 2 года назад
Кхм.. Питон не компилируется
@p.k.r.7963
@p.k.r.7963 2 года назад
Python не заточен на компиляцию он интерпритируемый язык программирования
@Mr-Phokus
@Mr-Phokus Год назад
Я думал что он превращается в китайский язык чтобы компуктер его прочитал, я охуел
@p.k.r.7963
@p.k.r.7963 Год назад
@@Mr-Phokus ну уж теперь всё встало на свои места
@euginekosenko2268
@euginekosenko2268 4 месяца назад
Школота так и не освоила магию jit :-)))
@_PYThoN_-
@_PYThoN_- Год назад
не знаю я привык работать на пайтон
@alexandrtsvetkov7715
@alexandrtsvetkov7715 Год назад
К вашему сведению, Си не является низкоуровневым ЯП. Это высокоуровневый ЯП с элементами низкоуровневого.
@CRITICALHITRU
@CRITICALHITRU 8 месяцев назад
Элементы низкоуровневости позволяют точнее объяснить задачу компьютеру, тем самым делая более оптимизированный код?
@alexandrtsvetkov7715
@alexandrtsvetkov7715 8 месяцев назад
@@CRITICALHITRU в принципе да, идёт упор больше на производительность. Низкоуровневые языки позволяют детально контролировать работу регистров процессора. Поэтому на Си и пишут драйверы и небольшие системные приложения. Хотя для сложных вычислительных процессов лучше использовать высокоуровневый яп.
@exe2023
@exe2023 2 года назад
Вот как зделать Ввод на Nasm section .data msg: db "Види число или тебе канец !!!",10 len equ $-msg section .bss num resb 5 section .text global _start _start: mov eax,4 mov ebx,1 mov ecx,msg mov edx,len int 80h mov eax,3 mov ebx,2 mov ecx,num mov edx,5 int 80h mov eax, 1 mov ebx,0 int 80h Если будут ошибки исправте я написал этотот код на телефоне в коментариях и я не 100 летний припадаватель мфти.
@13hubassembly59
@13hubassembly59 Год назад
Ввод: mov ah, 3 mov rbx, 0 mov rcx, Любая_метка
@Braars
@Braars 3 месяца назад
2:32
@thenikehiro5278
@thenikehiro5278 4 месяца назад
А теперь го не ассемблер, а сразу машинный код царапать на жестком диске
@yankeemustdie-4159
@yankeemustdie-4159 4 месяца назад
На перфоленте!
@aimem6315
@aimem6315 Год назад
Почему запустить код сложнее чем её написать, это язык мазохистов
@vectavegas
@vectavegas 4 месяца назад
Ленивым: 2:32
@Sus-uh7ve
@Sus-uh7ve 4 месяца назад
Емае бро ты так помог,мне так было лениво что ты меня спас,я хотел нажать на таймкод но случайно нажал на комментарий и решил в общем-то почему бы не оставить комментарий, спасибо!
Далее
나랑 동생이 버블티 마시는법
00:13
Просмотров 2,7 млн
x86 Assembly - Hello World Explained
14:43
Просмотров 43 тыс.