Помню в 90-х ходил в компьютерный клуб: поиграть, покодить простые программы на Бейсике. И там был один человек, который мог программировать на ассемблере, в том числе игры, которые на Бейсике уже не напишешь. Он даже пытался объяснить мне свой код, до сих пор помню фразу "И вот тут я обнулил Аш Эль" Я надеюсь, он стал высококлассным программистом...
Аш Эль, это он на Z80 что ли программировал на спектруме? Так это ерунда, там всё просто было, и архитектура у компьютера простая понятная была и команд не очень много, все можно было легко запомнить.
Если HL, то этот чувак программировал для процессора Z80, который стоял в ZX-Spectrum. HL это не один регистр, а два 8-битных. В i8086 такого уже не было, потому что он был 16-битный.
Почему-то думал, будет монстр на 100 строк, где чуть ли не из отдельных ноликов и единичек собирается каждый символ и отдельно записывается в ячейку памяти. А на деле оказалось не так все и страшно и даже почти понятно :)
Помните, что все популярные языки программирования, были написаны на ассемблере, так сказать "Это база" и те, кто умеет ею обращаться, они реально боги, те кто пише на питоне, они крепостные крестьяне
Современные языки программирования пишутся не на асм. Хотя, думаю он таки полезен для всяких задротов, которые любят дизасемблировать файлы (ака условных пиратов). Это не только весело, но иногда и полезно. Хотя учиться этому суперхаккингу наверняка очень долго
Нет, ассемблер наилучший вариант для новичка. Да, после ассемблера всё будет даваться легче, а также будет понимание работы компьютера. Что я вообще говорю? После изучения ассемблера можно будет писать под любой микроконтроллер или написать компилятор или интерпретатор под собственный язык!
@@mega_retard777 можно, а смысл? Зачем создаются высокоуровневые языки программирования? Почему они становятся популярными, а ФОРТРАН и АССемблер нет? ВРЕМЯ?!! Пока ты выучишь язык, напишешь на нем мало-мальски толковую программу, любой старшеклассник уже успеет такую прогу сваять раз 20.
Не совсем согласен. Вообще нужно отталкиваться от того: "а что ты будешь разрабатывать?" Но если брать общую температуру по палате, то лучше и вправду начать с Си образных языков, т.к. их архитектура самая шаблонная для большинства ЯП. Про Python уже такое не скажешь. Upd: крч, надо будет сделать видос на эту тему, уж очень она занимательная 😁
На самом деле имея под рукой мануал по архитектуре процессора и описанием команд, то на асме программировать чертовски просто, только любая более или менее серьезная программа превратится в огромное полотно команд, в котором после недельного перерыва уже не разберешься 😂
@@ІванМамонтов В теории это может и так, вот только вряд ли ты будешь писать супер идеально оптимизированный код (лучше чем оптимизирует его компилятор)
(Дополнение и изменённому комменту): Погодь, Vi или Vim 🙃? Если Vim, то сперва нужно сохранить текст ":w (тут указываешь название, если этого ещё не делал)", а потом просто выходишь командой ":q" Можно ещё сделать всё за одну команду ":wq", так будет быстрее)
@@PseudoDev спасибо. Это шутка конечно. Я не помню точно, т.к. не пользуюсь ни ви ни вим. Но я выходил м помощью :wq, если не ошибаюсь. Я тоже программист любитель-самоучка пишу на pyqt ну и чистом пайтоне. Есть пет-проджект программки для хобби (для радиолюбителей) linuxlog.su - сайтик пректа. И пользуюсь пайчармом, т.к. использую его плюшки
а подход хорош! Это, как научится играть три аккорда на гитаре. Дальше, либо так и будешь во дворе играть, либо Опарина с Остро догонять начнешь. Для первого понимания отлично.
Метка -- просто число, чаще всего адрес... Никакая это не функция. Метку уж скорее и можно сравнить с переменными. При компиляции она просто заменяется на число.
4:20 Падажжи. Как один байт может отображать числа от -127 ДО 255, если один бит из восьми отходит как раз для обозначения знака минус? Это уже девятибитовая переменная получается?
@@ApXucBuH мы сами определяем будет ли этот байт знаковый или без знаковый. Если он знаковый, то это конечно диапазон от -128 до +127. Если мы не учитываем знак, то от 0 до +255. Так как в данном случае мы говорим про константу, то весь диапазон у нас от -128 до +255
мне кажется надо и пайтон и АСМ паралельно изучать. Синтакс уж точно не перепутаешь. Да и надоело мелочится пошел в пайтон, захотел попотеть в АСМ. Ну если АСМ могешь то и другое очень быстро привьется. На собеседовании можно самому уже спросить, а что такое Аккумулятор и сказать потом садись 2.
Автор ролика по поводу инфы для ассемблера не прав, просто искать не хотел. А кому интересно тот найдёт. На том же Авито или барахолке почти любого города можно попробовать найти старые книги про ассемблер. И лет 10 назад с этим вообще никаких проблем не было😂 кому интересно, лично в моем распоряжении есть книга: "Программирование на языке ассемблера для персональной ЭВМ фирмы IBM" за авторством Д. Брэдли.
Да ассемблер наоборот самый простой язык. Сложность заключается лишь в том, как собрать из таких элементарных команд что-то полезное. Ну и литнратуры по нему предостаточно. Так что автор тут не совсем прав.
@@critical-ren-fan-corner при чем тут ОС? Ассемблер работает с инструкциями процессора, хоть и через прослойку виртуализации. Ни архитектура процессоров, ни ассемблер не изменились
Более ранний ассемблер до появления ПК. 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 // Кстати, до сих пор используется даже по прошествии более полувека. Возможно немножко напутал, но суть не менятся: сохранили регистры, назначали базовый регистр, вывели сообщение, возратили прежние значения регистров, обнулили код возврата, выход из программы, а в конце поле для сохранения регистров.
ассемблер это не совсем язык, это семейство мнемоник, где за короткими словами типа mov стоят прямые инструкции процессору. Компилятор транслирует мнемоники, немного упрощая жизнь программисту тем, что позволяет за той же мнемоникой mov спрятать несколько разных инструкций, предназначенных для переноса данных из разных типов операндов. Или позволяет написать макрос, который можно подставлять в определенное место программы, чтобы 100 раз не писать одно и то же и тд. Отвечая на вопрос что ниже ассемблера - писать код прямыми инструкциями процессора. И первое что ты так напишешь - простейший компилятор ассемблера, чтобы сэкономить время для написания более сложного компилятора :)
@@PseudoDev Многие говорят, что асямбля ломает мозг, как раз наоборот, он его структурирует. И по этому я только на нем и пишу. Ну а так можно было бы разграничить эти два диапозона, а то с самого начала новечкам мозг не хочется домать :д
@@PianoElipse хмм. Не осуждаю, но странный выбор, как основного языка программирования:) Как минимум из-за громоскости кода допустим для написания программы, которая перемножает многомерные матрицы, отделяя и сортируя числа по эквивалентности. Написать подобное на си, ну или на том же python(тут все решается подключением одной библиотеки) не составит труда, а вот на ассемблере ты потратишь не менее 500 строк кода в лучшем случае, написав пару "модулей" на том же ассемблере, формируя тот же самый "си", но под свои нужды. Да, с тобой я полностью солидарен, что ассемблер структурирует мозг, порой после многих часов в IDA, я начинаю мыслить и делать все так же последовательно, а сверстники не могут понять, что со мной сегодня опять не так(гуманитарные предметы сразу же отходят на второй план, из-за невозможности нормально мыслить). Однако надо знать грань между одним и другим. Если нужна МАКСИМАЛЬНАЯ производительность, то стоит присмотреться к чистому си, без библиотек(некоторые библиотеки, написанные криворукими, могут выполняться по 1000 тактов на простое действие, которое можно было выполнить за 100 тактов), он ПРАКТИЧЕСКИ равносилен коду на ассемблере написанному от руки, ибо компиляторы нынче намного умнее, чем в те же 2000-ные и умеют оптимизировать в разы лучше, чем может написать человек.
@@noname-wn9xk C - язык программирования высокого уровня. ASM - язык программирования низкого уровня, так как существует в рамках конкретной аппаратной платформы. И Python тоже язык программирования высокого уровня.
@@vas_._sfer6157, если С ставить вместе с ассемблером, то да, С - самый, самый, САМЫЙ высокоуровневый. Для меня сейчас С - очень даже высокоуровневый. А для тех, кто пишет на Python, Javascript и т.д., он низкоуровневый, так как там есть прямое обращение к памяти, вернее манипуляция с памятью, а в высокоуровневых нет
Ассемблер не такой уж сложный если изучать архитектуру под него, и если сравнивать с C++, да я на серьезе. C++ - это огромный язык, который имеет, хоть гибкий и удобный, но сложный в осваении инструментарий, к ассемблеру быстро прывыкаешь, потому что по масштабам он в десятки раз меньше плюсов, но естественно абстрактные идеи в ассемблере тяжело написать, нежели на плюсах
Дружище!!! как приятно слушать человека который точно знает о чем говорит! Классс" .... но счастье было так близко! так возможно ))) все что ты пишешь на экране наверно своего дисплея, все в черной темноте" бывает видно только когда ты выделяешь фрагмент,так что кода этой супер программы я так и не увидел" Неужели только я? непонятно, щас гляну что другие пишут
Изначально появилась архитектура x86, которая вообще была 16-битной. Потом ее апгрейднули до 32 бит, новую архиткектуру назвали IA-32. А когда апгрейднули до 64 бит, для отличия стали называть x86_64, но сокращенно все эти архитектуры могут называть просто x86
Привет, видео прикольное, но над ним действительно только посмеяться(о чем ты указал в начале видео). Если интересно для будущих роликов могу тебе накидать инфы по ASM, могу даже чему то научить твоих подписчиков(через тебя естественно), если хочешь напиши мне. Кстати ты пишешь не на ASM x86, а на ASM x64. Регистры с припиской R (RAX, RDX, RDI и т.д.), это 64-разрядные регистры, они есть у процессоров архитектуры x64, в архитектуре x86 регистры 32-разрядные (EAX, EBX, ECX и т.д.).
Это же код вроде под x64 и при компиляции ты формат указывал elf64. На x86 я помню вообще делают с помощью int прерываний. Когда-то я немного учил ассемблер под DOS 😄
тык х86 включают в себя 32-битные и 64-битные процессоры.. х86 можно сравнивать только с arm процессорами (получили огрумную популярность в мобилках) и может ещё с какими, если есть, НО никак не с 32-64 (потому что армы тоже бывают 32-64-битные)
Это константное значение, в котором мы можем определить знаковый ли этот байт или беззнаковый. Логично, что если у нас есть знак, что мы резервируем первый бит под знак, и диапазон у нас от -128 до +127. Но мыж можем определить его и без знака, тогда диапазон у нас от 0 до 255
unsinged byte будет принимать значения от 0 - 255. Все операции в компьютере выполняется в 16-ричной системе счисления и, если ты не знал, но отрицательное значение в данной системе существует как бы очень большим числом. А все регистры принимают только unsigned значения.
6:45 - почему вдруг строка "Hello World!" с символом перевода имеет длину 14 байтов (mov rdx, 14)?! 13 же! В этой программе такая неточность некритична (возможно, там нули из-за выравнивания), но вообще на экране может появиться "мусор".
@@H336-p1v, а где там нулевой байт? Это ж не C/C++, где все строки автоматически заканчиваются нулём. Ассемблер всё "понимает" буквально. Я думаю, этот фрагмент позаимстовавали из другой обучалки, где была запятая между словами, и там 14 было бы правильной длиной.
А вот если придумать нейронку которая будет шпарить код на асемблере и можно написать програму для контретного устройства проца и памяти озу например но вот большинство процов закрытые за исключение arm и risc v
Хорошее видео для людей, кто в детстве и юности кукарекали про потенциал кончолей и что оптимизацией игр под железо устаревшая на релизе лепёшка с вентилятором будет тянуть новинки минимум 8 лет.
можно же просто сделать: 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 И всё
Ирония в том, что я знал все термины, которые звучали в видео... Как будто на программирование у меня не ушло 4 года... PS: Питонисты перевернулись в гробу.
ассемблер это примерно как твое тело без сознания. Посылать миллионы сигналов нейронов и регулировать значения их интенсивности нужно вручную чтобы просто пернуть
@@AXSMEBEL , возможно, зависит от реализации оболочки, но в Windows и Linux echo - это команда оболочки. Хотя в Linux и есть бинарник /bin/echo, в скриптах echo обрабатывается как встроенная команда.
@@CRITICALHITRU в принципе да, идёт упор больше на производительность. Низкоуровневые языки позволяют детально контролировать работу регистров процессора. Поэтому на Си и пишут драйверы и небольшие системные приложения. Хотя для сложных вычислительных процессов лучше использовать высокоуровневый яп.
Относительно Mac OS. Очень смешно пытаться написать hello world на ассемблере по гайду с ютуба от чела который пишет на консоли линукса с консоли мака. Мне буквально пришлось читать документацию к ассемблеру чтоб понять какого хрена вообще происходит. Если вы вдруг опустились в комментарии потому что у вас тоже мак и вы не можете понять че происходит, то во-первых посмотрите какая архитектура у вашего процессора и введите команду nasm -h , и там в разделе -f будет нужная вам команда для компиляции кода на вашей архитектуре процессора. А во вторых вам придется переписать код из за того, что системные вызовы на линуксе и на маке разные
Вижу, ты смотришь комментарии) В общем, хочу начать учить ASSемблер. Инфы в инете не найти, курсы быстро забрасываются, мало что объясняют, как вообще кодить на этом всём... Хочу выучить низкоуровневый язык или даже несколько, чтоб с нуля написать ос без интерфейса по типу DOS. Знаю, что сложно, но я готов к такому. В общем, подскажи, если сможешь, с чего можно этот проклятый язык изучать? По нему рил инфы не найти, как будто он мёртвым грузом лежит (хотя возможно так и есть, все же щас на высокоуровневых сидят)
Нам основы ассемблера преподают в вузе. Мне сложно подсказать какие-то определённые сайты, так как я их использую в основном для того чтобы дополнить информацию преподавателя
поищи туторы на английском, лично один такой сейчас смотрю но он 2-часовой) мозг инфу зажёвывает знатно, а всё что я хотел это заняться ромхакингом на гба (в целом даже попробовал себя в этом, но всё что я сделал это поковырял визуал, авось с изучением смогу менять карты)
проблема скорее всего в том, что производители процессоров неохотно делятся списками инструкций для своих процессоров. Если люди начнут сами себе ОС писать это же какой рынок рухнет. Правда в РФ его итак не было никогда )))
Когда вижу как печатают голубым по чёрному задаюсь вопросом - А гуманоид ли перед нами?? Или красным по чёрному. Короче я знаю как вычислять пришельцев с Нибиру. И не благодарите! ))
неправильно! не знаешь" садись - два! ))) Байт может принимать значения в диапазоне 00h .. FFh или 0 .. 255 а целое вещественное число в байте это то что ты нарисовал )))
@@raal8438 Вы невнимательно смотрели ролик. На 4-й минуте говорится о том, что байт может принимать значения от -128 до +255 вот ссылка - ruclips.net/video/00-hcWc7_fA/видео.html Именно это я и имел в виду. И да будет Вам известно, что не только от 0 до 255 байт бывает, но и от -127 до +128, даже от -10 до +245, тут нет ограничений, это ассемблер. Каким захотите, таким и будет этот байт. В ролике много ошибок, как то - С++ является по словам автора низкоуровневым. Но смотреть приятно, вспоминают настоящие языки еще =) Всем добра.
Ну вот смотри, и на Питоне, и Си++ можно: делать сайты, делать игры (2д и 3д), делать вычесления, страдать фигнёй, создавать нейронки, делать программы для ~роботов~ (ну типа языка Arduino). Отличия: Питон - лёгкий язык, но медленный, НО ЕСЛИ ЮЗАТЬ НУМБУ, ТО ПИТОН КАК СИ++ БУДЕТ ПО СКОРОСТИ!) Си++ - сложный язык, но быстрый изначально. Также, Си++ ОЧЕНЬ МЕГА СУПЕР ДУПЕР ПУПЕР МЕГА ТУПЕР ГИБКИЙ. Поэтому он ну ооочень сложный. Хотя по функциональности они примерно одинаковые. Но Си++ использует Анреал Энжин, а Питон юзает сам себя, так что... Да ваще насрать, изучай обы языка, их вообще совмещать можно, скачиваешь Cython и кайфуешь ат жизни нахер!!!!
@@putman77ну, от -10 до 245 это конечно бред) -127 - +128 это результат использования дополнительного кода числа, вида представления отрицательных чисел
Чувак учи мат часть!!!!!!!!! Python не является компилируемым языком программирования - это интерпретатор. Паскаль - да. Это классика, а Python блин нееет!!!
вот менее костыльная версия на 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
А и ещё, я ассемблер использую только для bootload или других низкоуровневых приколов а так я пишу на c ПРОШУ ЗАМЕТИТЬ НЕ НА C++ А НА C ЭТО РАЗНЫЕ ВЕЩИ!
Не вижу противоречий. Честно, я уже не помню всех нюансов (видео давно вышло), но 8 бит мы можем представить как значение с резервацией под знак в первом бите, или без него. Если со знаком, то диапазон у нас от -127 до 128. А если без знака то от 0 до 255. Вопросы?
@@PseudoDev да хрен с ним с тем байтом, люди смотрят и ладно.. Не принципиально... Это все равно что зоолог сказал бы "у слона пять конечностей, на четырех он ходит, а пятый - хобот, болтается без дела, пока тот не решит им сорвать грушу с дерева или окатить себя водой и реки"...
Я понимаю, зачем это студентам, которым это надо сдавать. Я понимаю, зачем это крутым системным программистам, которые сопрягают ОС, девайсы, пишут драйверы, компиляторы и т.д. Я не понимаю, зачем это 99,98% обычных программистов, которые и разрабатывают примерно 100% обычного софта... Ну, кроме понимания сути процессов, но ведь для этого достаточно самых-самых основ...
А это здорово тренирует мозг мыслить алгоритмами. Чисто для примера: у нас в вузе мы проходили ассемблер на кр580, в котором, не то чтобы возведения в степень, даже банального умножения нет. И тебе приходиться подробно прорабатывать алгоритм решения задачи в ограниченных условиях
Kotlin компилируется в байт-код для jvm. JS может как интерпретироваться, так и компилироваться при запуске(компиляция JIT(just in time)). Python в целом да, интерпретируется, но есть библиотеки, которые позволяют при запуске компилировать определенные фрагменты кода(полезно, когда эти самые фрагменты работают медленнее всего)
Верно:) Но, в принципе, можно собрать "ехешник", только вот он будет громоздким, весить минимум 2мб(интерпретатор будет кочевать с программой в PE формате)
Ну что, как вам ролик?)
Класс.
Агонь
Понимаю, что эта тема может всем не зайти, но хотелось бы увидеть разбор языка в версии для DOS
Очень качественно. Не бросай канал
@@Hlebopodobniy ты конечно сказанул
Ты понимаешь, что разговор будет серьёзным, когда видишь ролик «hello world» на 9 минут
АХАХАХАХАХА
Да нормально,учителя информатики вообще умудряются растянуть тему "создание переменных на Python" на целые 45 минут..
как то страшно стало 😨
Для ассемблера этого мало)
@@Sus-uh7ve правильно делают, если это в школе, школьникам нужно вбить теорию вголову, иначе никак
Помню в 90-х ходил в компьютерный клуб: поиграть, покодить простые программы на Бейсике. И там был один человек, который мог программировать на ассемблере, в том числе игры, которые на Бейсике уже не напишешь. Он даже пытался объяснить мне свой код, до сих пор помню фразу "И вот тут я обнулил Аш Эль" Я надеюсь, он стал высококлассным программистом...
не, он хакнул пентагон и сейчас сидит в алькатрасе
Программить на компьютерном клубе, вот что меня напугало.
@@ilhanilhanDev ну да, программить сидя на клубе, а не в нем это страшно, можно даже упасть если потерять равновесие.
Аш Эль, это он на Z80 что ли программировал на спектруме? Так это ерунда, там всё просто было, и архитектура у компьютера простая понятная была и команд не очень много, все можно было легко запомнить.
Если HL, то этот чувак программировал для процессора Z80, который стоял в ZX-Spectrum. HL это не один регистр, а два 8-битных. В i8086 такого уже не было, потому что он был 16-битный.
в унике сдаем лабы по ассемблеру, после него понимаешь что с++ очень понятный и легкий язык
Реально
С это ещё добрый язык для людей
А вот ты попробуй в Майнкрафте x86 архитектуру воссоздать
Почему-то думал, будет монстр на 100 строк, где чуть ли не из отдельных ноликов и единичек собирается каждый символ и отдельно записывается в ячейку памяти. А на деле оказалось не так все и страшно и даже почти понятно :)
Ключевое слово "почти"
Это только хелоу ворлд)
@@maximleo1904 я чела видел который на ассемблере тетрис написал
Ууу, я на паскале игру симулятор вообще в 15 строк уместил.
@@yankeemustdie-4159 какую?
Мама забери меня, мне страшно
На заметку: инфы по ассемблеру мало на великомогучем, а вот на английском - вполне достаточно.
Это касается не только ассемблера
@Seomastertop надо сделать компилятор для двоичного кода, всё остальное оскорбляет дух машины
Ravesly сайт, там есть
@@SkannerKaijy, Компилятор для двоичного кода не нужен)
Помните, что все популярные языки программирования, были написаны на ассемблере, так сказать "Это база" и те, кто умеет ею обращаться, они реально боги, те кто пише на питоне, они крепостные крестьяне
Языки на си пишутся, разве нет?
Точнее даже не языки, а компиляторы и интерпретаторы
@@slavaandreev1494и то и другое написано на си и плюсах, увы
@@slavaandreev1494а си на чем написан? На ассемблере
Современные языки программирования пишутся не на асм. Хотя, думаю он таки полезен для всяких задротов, которые любят дизасемблировать файлы (ака условных пиратов). Это не только весело, но иногда и полезно. Хотя учиться этому суперхаккингу наверняка очень долго
Знакомый - сеньор : начни учить программирование с ASSамблера
Я смотря как написать "хэллоу ворлд": Пиздец...
Нет, ассемблер наилучший вариант для новичка. Да, после ассемблера всё будет даваться легче, а также будет понимание работы компьютера. Что я вообще говорю? После изучения ассемблера можно будет писать под любой микроконтроллер или написать компилятор или интерпретатор под собственный язык!
@@mega_retard777 можно, а смысл? Зачем создаются высокоуровневые языки программирования? Почему они становятся популярными, а ФОРТРАН и АССемблер нет? ВРЕМЯ?!! Пока ты выучишь язык, напишешь на нем мало-мальски толковую программу, любой старшеклассник уже успеет такую прогу сваять раз 20.
Думаю лучше начать с Phyton, он лёгкий и если его выучить то такие языки как с++, джава, и т.д. будут даваться легко.
Не совсем согласен. Вообще нужно отталкиваться от того: "а что ты будешь разрабатывать?"
Но если брать общую температуру по палате, то лучше и вправду начать с Си образных языков, т.к. их архитектура самая шаблонная для большинства ЯП. Про Python уже такое не скажешь.
Upd: крч, надо будет сделать видос на эту тему, уж очень она занимательная 😁
Прошло 7 месяцев. Я забил на карьеру прогера и пошел на завод. Держу в курсе )
Я один, с каждым новым вопросом автора, ждал ответ "х*й его знает"?
Мне, как человеку знающий Python3.12 и изучающий C++, было АБСОЛЮТНО понятно, о чем шла речь. И я совсем не устроил суицид после этого видео.
На самом деле имея под рукой мануал по архитектуре процессора и описанием команд, то на асме программировать чертовски просто, только любая более или менее серьезная программа превратится в огромное полотно команд, в котором после недельного перерыва уже не разберешься 😂
А Джон Кармак на асме вершил одну революцию в видеоигровой индустрии за другой.
И не удивительно.
@@critical-ren-fan-corner что за сказки, исходный код его движков это С
Так вот это и есть плата за быстродействие приложения. Дольше промучаешься, зато требования к быстродействию железа на порядок уменьшаться.
@@ІванМамонтов В теории это может и так, вот только вряд ли ты будешь писать супер идеально оптимизированный код (лучше чем оптимизирует его компилятор)
Из всех вариантов выбрали самый извращённый - асм под эмулятором линукса на винде. Сэр знает толк в извращениях.
Если виндовс еще и в virtualbox, тогда вообще шик
Это не эмулятор
@@YuraSamusenkoахахаха у меня именно такой случай
когда увидел ролик о hello world на 9 минут: ваша душа теряет решимость, ведь теперь вы боитесь ассемблер
Кстати интересный факт:
Большинство фундамента БИОС написаны на ASM
И лишь малая часть на C (UEFI)
Впринципе логично, так как непосредственно с железками работаем
А с учётом компиляции то все
Советую всем интересующимся поиграть в TIS-100 и на этом закончить знакомство с ассемблером.
Годнота
Спасибо! Многие моменты стали понятны, продолжайте делать ещё видео про язык ассемблера
Скажите а где найти урок - ассемблер за 5 минут? А то у меня собес на асм разработчика через 10 минут.
Да и ещё вопрос - как выйти из vi?
Могу за тебя свечку в церкви поставить)
@@PseudoDev если за здравие - тогда ок 😁
(Дополнение и изменённому комменту):
Погодь, Vi или Vim 🙃? Если Vim, то сперва нужно сохранить текст ":w (тут указываешь название, если этого ещё не делал)", а потом просто выходишь командой ":q"
Можно ещё сделать всё за одну команду ":wq", так будет быстрее)
@@PseudoDev спасибо. Это шутка конечно. Я не помню точно, т.к. не пользуюсь ни ви ни вим. Но я выходил м помощью :wq, если не ошибаюсь. Я тоже программист любитель-самоучка пишу на pyqt ну и чистом пайтоне. Есть пет-проджект программки для хобби (для радиолюбителей) linuxlog.su - сайтик пректа. И пользуюсь пайчармом, т.к. использую его плюшки
У Гоши Дударя)
а подход хорош! Это, как научится играть три аккорда на гитаре. Дальше, либо так и будешь во дворе играть, либо Опарина с Остро догонять начнешь. Для первого понимания отлично.
Python:
Скорость выполнения кода - 💀☠️
Скорость написания кода🥰
Ассемблер:
Скорость написания кода💀
Скорость выполнения кода🥰🥰
Метка -- просто число, чаще всего адрес... Никакая это не функция. Метку уж скорее и можно сравнить с переменными. При компиляции она просто заменяется на число.
А разве обычные прыжки и прыжки в операциях сравнения не по разному работают?
Великолепный обзор. У тебя талант.
Подожди, байт либо от 0 до 255, либо от -128 до 127
Все верно
4:20 Падажжи. Как один байт может отображать числа от -127 ДО 255, если один бит из восьми отходит как раз для обозначения знака минус? Это уже девятибитовая переменная получается?
@@ApXucBuH мы сами определяем будет ли этот байт знаковый или без знаковый. Если он знаковый, то это конечно диапазон от -128 до +127. Если мы не учитываем знак, то от 0 до +255. Так как в данном случае мы говорим про константу, то весь диапазон у нас от -128 до +255
@@PseudoDev а точно, + весь Ассемблер не типизированный(то есть мы букву сможем прочитать, как число)😅
мне кажется надо и пайтон и АСМ паралельно изучать. Синтакс уж точно не перепутаешь. Да и надоело мелочится пошел в пайтон, захотел попотеть в АСМ. Ну если АСМ могешь то и другое очень быстро привьется. На собеседовании можно самому уже спросить, а что такое Аккумулятор и сказать потом садись 2.
Автор ролика по поводу инфы для ассемблера не прав, просто искать не хотел. А кому интересно тот найдёт. На том же Авито или барахолке почти любого города можно попробовать найти старые книги про ассемблер. И лет 10 назад с этим вообще никаких проблем не было😂 кому интересно, лично в моем распоряжении есть книга: "Программирование на языке ассемблера для персональной ЭВМ фирмы IBM" за авторством Д. Брэдли.
Ты выпустил видос🥳🥳🥳. Думал не доживу, если честно
Да ассемблер наоборот самый простой язык. Сложность заключается лишь в том, как собрать из таких элементарных команд что-то полезное. Ну и литнратуры по нему предостаточно. Так что автор тут не совсем прав.
Но только большая часть этой литературы написана во времена DOS или Windows XP.
@@critical-ren-fan-corner думаешь ассемблер сильно изменился?
@@yuzeless асм не изменился, а ОС, поверх которой работает программа, радикально изменилась.
@@critical-ren-fan-corner при чем тут ОС? Ассемблер работает с инструкциями процессора, хоть и через прослойку виртуализации. Ни архитектура процессоров, ни ассемблер не изменились
@@yuzelessтам до херища постоянно меняется. Лично я сломался после vliw, и это было ещё до 64 разрядов...
Я в ассемблере неплохо шарил.до 20- и лет.а потом : работа,семья.некагдо стало.ща 43 .всё надеюсь время будет
Более ранний ассемблер до появления ПК.
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
//
Кстати, до сих пор используется даже по прошествии более полувека.
Возможно немножко напутал, но суть не менятся: сохранили регистры, назначали базовый регистр, вывели сообщение, возратили прежние значения регистров, обнулили код возврата, выход из программы, а в конце поле для сохранения регистров.
Го топ самых необычных языков программирования (там какие нибудь Chiken и ёптаскрипт)
А почему бы и нет)
Я вас услышал
ёптаскрипт вроде компилирует в js, не?
@@Драго-в9с ёптаскрипт это просто куча дефайнов, нет?
@@pain.6766 а чё
@@Manzz2 ?
А что идёт ещё ниже чем ассемблер? Ведь слова-команлы (mov,rdx....) тоже както создали.
Я не программист но стало интересно.
ассемблер это не совсем язык, это семейство мнемоник, где за короткими словами типа mov стоят прямые инструкции процессору. Компилятор транслирует мнемоники, немного упрощая жизнь программисту тем, что позволяет за той же мнемоникой mov спрятать несколько разных инструкций, предназначенных для переноса данных из разных типов операндов. Или позволяет написать макрос, который можно подставлять в определенное место программы, чтобы 100 раз не писать одно и то же и тд. Отвечая на вопрос что ниже ассемблера - писать код прямыми инструкциями процессора. И первое что ты так напишешь - простейший компилятор ассемблера, чтобы сэкономить время для написания более сложного компилятора :)
1011011011101101100111101101011110110100011101111011011101111011011101...
Ниже только перфокарты.)
@@Oktoberkun Еще ниже переключатели для задания последовательности битов
@Mr-Phokus а дальше механика.
Это язык от которого чувствуешь физическую боль.
Я тот самый 100-летний препод из МФТИ. Задавайте вопросы
Есть ли жизнь на Марсе?
вы своё столетие в какой системе счисления отмечали?
@@anton__k😁
так ошибочка (4:20), не 255 (так как все значения в db, исключая ноль), а +127
байты со знаком в диапазоне от -128 до +127; беззнаковые байтовые значения в диапазоне от 0 до 255
@@PseudoDev тогда зочим такой странный диапазон указывать?
Но ведь мы можем указывать числа в этом диапазоне?)
А вот почему он такой странный... Ассемблер 🙃
@@PseudoDev Многие говорят, что асямбля ломает мозг, как раз наоборот, он его структурирует. И по этому я только на нем и пишу. Ну а так можно было бы разграничить эти два диапозона, а то с самого начала новечкам мозг не хочется домать :д
@@PianoElipse хмм. Не осуждаю, но странный выбор, как основного языка программирования:)
Как минимум из-за громоскости кода допустим для написания программы, которая перемножает многомерные матрицы, отделяя и сортируя числа по эквивалентности. Написать подобное на си, ну или на том же python(тут все решается подключением одной библиотеки) не составит труда, а вот на ассемблере ты потратишь не менее 500 строк кода в лучшем случае, написав пару "модулей" на том же ассемблере, формируя тот же самый "си", но под свои нужды.
Да, с тобой я полностью солидарен, что ассемблер структурирует мозг, порой после многих часов в IDA, я начинаю мыслить и делать все так же последовательно, а сверстники не могут понять, что со мной сегодня опять не так(гуманитарные предметы сразу же отходят на второй план, из-за невозможности нормально мыслить). Однако надо знать грань между одним и другим. Если нужна МАКСИМАЛЬНАЯ производительность, то стоит присмотреться к чистому си, без библиотек(некоторые библиотеки, написанные криворукими, могут выполняться по 1000 тактов на простое действие, которое можно было выполнить за 100 тактов), он ПРАКТИЧЕСКИ равносилен коду на ассемблере написанному от руки, ибо компиляторы нынче намного умнее, чем в те же 2000-ные и умеют оптимизировать в разы лучше, чем может написать человек.
Панч в сторону питона за панчем. 😂
Мне кажется что питон мало чем от английского отличается. Помойка обыкновенная.
@@No_name_music да, согласен, настоящие языки программирования должны быть на русском!
@@php1036 Есть же НЛП которые продвигают могучие инфоцигане, деньги им то несут значит программирование рабочее
@@php1036 1C
Python не компилируется в ASM. С - не низкоуровневый.
Программа на ASM не выдает ошибку компиляции.
При компиляции: *мусор после выражения*
*мусор*
после компиляции не верно написанного кода: *ошибка сегментации*
C - низкоуровневый
@@noname-wn9xk C - язык программирования высокого уровня. ASM - язык программирования низкого уровня, так как существует в рамках конкретной аппаратной платформы.
И Python тоже язык программирования высокого уровня.
@@vas_._sfer6157, если С ставить вместе с ассемблером, то да, С - самый, самый, САМЫЙ высокоуровневый. Для меня сейчас С - очень даже высокоуровневый. А для тех, кто пишет на Python, Javascript и т.д., он низкоуровневый, так как там есть прямое обращение к памяти, вернее манипуляция с памятью, а в высокоуровневых нет
Ассемблер не такой уж сложный если изучать архитектуру под него, и если сравнивать с C++, да я на серьезе. C++ - это огромный язык, который имеет, хоть гибкий и удобный, но сложный в осваении инструментарий, к ассемблеру быстро прывыкаешь, потому что по масштабам он в десятки раз меньше плюсов, но естественно абстрактные идеи в ассемблере тяжело написать, нежели на плюсах
Дружище!!! как приятно слушать человека который точно знает о чем говорит! Классс"
.... но счастье было так близко! так возможно ))) все что ты пишешь на экране наверно своего дисплея, все в черной темноте" бывает видно только когда ты выделяешь фрагмент,так что кода этой супер программы я так и не увидел" Неужели только я? непонятно, щас гляну что другие пишут
Пайтон же интерпретируемый язык программирования, а не компилируемый
я что-то не понял. В названии х86, а использует х64 регистры (rax, rbx....) или я что-то не понимаю?
Изначально появилась архитектура x86, которая вообще была 16-битной. Потом ее апгрейднули до 32 бит, новую архиткектуру назвали IA-32. А когда апгрейднули до 64 бит, для отличия стали называть x86_64, но сокращенно все эти архитектуры могут называть просто x86
Вот создаю ос на c и asm и ты мне очень помог
Правда? Офигенно! Очень приятно слышать, спасибо 🙂
Не знаю почему но вместо _start у меня принимает только main
Чее то я нифига не понял, разве имена секций не в начале стоят?
Да и строку под меткой message надо было бы в секцию .data, как и код под меткой _start в секцию .text, а он слегка хуй знает как указал эти секции
Привет, видео прикольное, но над ним действительно только посмеяться(о чем ты указал в начале видео). Если интересно для будущих роликов могу тебе накидать инфы по ASM, могу даже чему то научить твоих подписчиков(через тебя естественно), если хочешь напиши мне. Кстати ты пишешь не на ASM x86, а на ASM x64. Регистры с припиской R (RAX, RDX, RDI и т.д.), это 64-разрядные регистры, они есть у процессоров архитектуры x64, в архитектуре x86 регистры 32-разрядные (EAX, EBX, ECX и т.д.).
А можешь сделать видео про GNU ассемблер(не обязательно Hello world!)
Топ 1 язык программирования для новичка:
Это же код вроде под x64 и при компиляции ты формат указывал elf64. На x86 я помню вообще делают с помощью int прерываний. Когда-то я немного учил ассемблер под DOS 😄
тык х86 включают в себя 32-битные и 64-битные процессоры..
х86 можно сравнивать только с arm процессорами (получили огрумную популярность в мобилках) и может ещё с какими, если есть, НО никак не с 32-64 (потому что армы тоже бывают 32-64-битные)
@@килбос99 так у x64 регистры по другому называются ведь или я что-то путаю
Вопрос: как у тебя в 1 байт влезло столько значений от -128 до 255?
Всего 256 значений
Это константное значение, в котором мы можем определить знаковый ли этот байт или беззнаковый. Логично, что если у нас есть знак, что мы резервируем первый бит под знак, и диапазон у нас от -128 до +127. Но мыж можем определить его и без знака, тогда диапазон у нас от 0 до 255
На метаните есть курсы по ассемблерам.
Байт может принимать значения от -128 до 127, а не 255
unsinged byte будет принимать значения от 0 - 255. Все операции в компьютере выполняется в 16-ричной системе счисления и, если ты не знал, но отрицательное значение в данной системе существует как бы очень большим числом. А все регистры принимают только unsigned значения.
@@mhalaider6046шестнадцатеричная используется из-за ее удобного представления, чем двоичной или десятичной
@@Гычпук логично, а к чему это ?
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
6:45 - почему вдруг строка "Hello World!" с символом перевода имеет длину 14 байтов (mov rdx, 14)?! 13 же! В этой программе такая неточность некритична (возможно, там нули из-за выравнивания), но вообще на экране может появиться "мусор".
Мб он ещё null terminator учёл (нулевой байт \0 в конце строки)
@@H336-p1v, а где там нулевой байт? Это ж не C/C++, где все строки автоматически заканчиваются нулём. Ассемблер всё "понимает" буквально.
Я думаю, этот фрагмент позаимстовавали из другой обучалки, где была запятая между словами, и там 14 было бы правильной длиной.
Даже вывести одну букву на середину экрана и заставить мигать - это тонна текста
Извините, а Вы можете решить обратную задачу??
Я который отлично знаю с# и изучаю python: А что так можно было))?
После просмотра данного видео появилось желание повеситься.
Автору вагон конфет и цистерну чая😊
Лицо питонистов представили?
А если по нашему mov приёмник, источник, но можно и так :)
Давайте по хардкору, змейка на ассемблере
На гитхабе уже повторяли 100 раз
А вот если придумать нейронку которая будет шпарить код на асемблере и можно написать програму для контретного устройства проца и памяти озу например но вот большинство процов закрытые за исключение arm и risc v
Только говнокода на ассемблере нам не хватало
привет первокурсникам итмо, почему ничего не понятно?
На 1 курсе мфти (хотя я физик) был ассемблер, это был ужас.
Хорошее видео для людей, кто в детстве и юности кукарекали про потенциал кончолей и что оптимизацией игр под железо устаревшая на релизе лепёшка с вентилятором будет тянуть новинки минимум 8 лет.
Также питон: print(‘hello world’)
Также питон:*прошло десять дней* hello world
Ты допустил ошибку
C++: нужно сделать отдельный блок🤓
Python:всего лишь одна строка
Также HQ9+: H
@@WormXchannelHQ9+: всего лишь один символ.
Только мне показалось что у автора какой то фреймворк похожий на asm ? И сама теория весьма запутано рассказана...
Нужно было запилить под ДОС
А я только ассемблер и знаю🤣🙃
Вроде чётко все объяснил...
можно же просто сделать:
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
И всё
Вопрос нахуя так делать когда можно просто
Print('Hello World!')
@@thezzzzzz можно ещё проще, H
Ирония в том, что я знал все термины, которые звучали в видео... Как будто на программирование у меня не ушло 4 года...
PS: Питонисты перевернулись в гробу.
ассемблер это примерно как твое тело без сознания. Посылать миллионы сигналов нейронов и регулировать значения их интенсивности нужно вручную чтобы просто пернуть
Страшный сон питониста
Есть сиалетний преподаватель?
Тем временем питон: print(‘Hello World’)
Самое короткое - на shell-языке (и не надо дополнительно ничего устанавливать в систему): echo Hello World
@@anton__kмне кажется или шелл это не язык, а echo вполне себе самостоятельная программа, которая в виде бинарника лежит себе на диске?
Тем временем HQ9+: H
@@AXSMEBEL , возможно, зависит от реализации оболочки, но в Windows и Linux echo - это команда оболочки. Хотя в Linux и есть бинарник /bin/echo, в скриптах echo обрабатывается как встроенная команда.
@@anton__k если вы выполните в линуксе команду `which echo`, то внезапно увидите путь к бинарному файлу (скорее всего в /usr/bin)
К вашему сведению, Си не является низкоуровневым ЯП. Это высокоуровневый ЯП с элементами низкоуровневого.
Элементы низкоуровневости позволяют точнее объяснить задачу компьютеру, тем самым делая более оптимизированный код?
@@CRITICALHITRU в принципе да, идёт упор больше на производительность. Низкоуровневые языки позволяют детально контролировать работу регистров процессора. Поэтому на Си и пишут драйверы и небольшие системные приложения. Хотя для сложных вычислительных процессов лучше использовать высокоуровневый яп.
А теперь го не ассемблер, а сразу машинный код царапать на жестком диске
На перфоленте!
Относительно Mac OS. Очень смешно пытаться написать hello world на ассемблере по гайду с ютуба от чела который пишет на консоли линукса с консоли мака. Мне буквально пришлось читать документацию к ассемблеру чтоб понять какого хрена вообще происходит. Если вы вдруг опустились в комментарии потому что у вас тоже мак и вы не можете понять че происходит, то во-первых посмотрите какая архитектура у вашего процессора и введите команду nasm -h , и там в разделе -f будет нужная вам команда для компиляции кода на вашей архитектуре процессора. А во вторых вам придется переписать код из за того, что системные вызовы на линуксе и на маке разные
Вижу, ты смотришь комментарии)
В общем, хочу начать учить ASSемблер. Инфы в инете не найти, курсы быстро забрасываются, мало что объясняют, как вообще кодить на этом всём...
Хочу выучить низкоуровневый язык или даже несколько, чтоб с нуля написать ос без интерфейса по типу DOS. Знаю, что сложно, но я готов к такому.
В общем, подскажи, если сможешь, с чего можно этот проклятый язык изучать? По нему рил инфы не найти, как будто он мёртвым грузом лежит (хотя возможно так и есть, все же щас на высокоуровневых сидят)
Нам основы ассемблера преподают в вузе. Мне сложно подсказать какие-то определённые сайты, так как я их использую в основном для того чтобы дополнить информацию преподавателя
На сайтах вряд ли найдешь полный курс. Его обычно из книг преподают. Так что ищи, читай)
@@Pavel.Maslennikov спасибо
поищи туторы на английском, лично один такой сейчас смотрю но он 2-часовой) мозг инфу зажёвывает знатно, а всё что я хотел это заняться ромхакингом на гба (в целом даже попробовал себя в этом, но всё что я сделал это поковырял визуал, авось с изучением смогу менять карты)
проблема скорее всего в том, что производители процессоров неохотно делятся списками инструкций для своих процессоров. Если люди начнут сами себе ОС писать это же какой рынок рухнет. Правда в РФ его итак не было никогда )))
Когда вижу как печатают голубым по чёрному задаюсь вопросом - А гуманоид ли перед нами?? Или красным по чёрному. Короче я знаю как вычислять пришельцев с Нибиру. И не благодарите! ))
Инфы по асму полно. И байт может принять значения от минус 127 до 128, а не 256. Но спасибо, доля правды в ролике есть.
неправильно! не знаешь" садись - два! )))
Байт может принимать значения в диапазоне 00h .. FFh или 0 .. 255
а целое вещественное число в байте это то что ты нарисовал )))
@@raal8438 Вы невнимательно смотрели ролик.
На 4-й минуте говорится о том, что байт может принимать значения от -128 до +255 вот ссылка - ruclips.net/video/00-hcWc7_fA/видео.html
Именно это я и имел в виду. И да будет Вам известно, что не только от 0 до 255 байт бывает, но и от -127 до +128, даже от -10 до +245, тут нет ограничений, это ассемблер. Каким захотите, таким и будет этот байт.
В ролике много ошибок, как то - С++ является по словам автора низкоуровневым.
Но смотреть приятно, вспоминают настоящие языки еще =)
Всем добра.
@@putman77 С++ по уровню такой же как С?
Ну вот смотри, и на Питоне, и Си++ можно: делать сайты, делать игры (2д и 3д), делать вычесления, страдать фигнёй, создавать нейронки, делать программы для ~роботов~ (ну типа языка Arduino). Отличия: Питон - лёгкий язык, но медленный, НО ЕСЛИ ЮЗАТЬ НУМБУ, ТО ПИТОН КАК СИ++ БУДЕТ ПО СКОРОСТИ!) Си++ - сложный язык, но быстрый изначально. Также, Си++ ОЧЕНЬ МЕГА СУПЕР ДУПЕР ПУПЕР МЕГА ТУПЕР ГИБКИЙ. Поэтому он ну ооочень сложный. Хотя по функциональности они примерно одинаковые. Но Си++ использует Анреал Энжин, а Питон юзает сам себя, так что... Да ваще насрать, изучай обы языка, их вообще совмещать можно, скачиваешь Cython и кайфуешь ат жизни нахер!!!!
@@putman77ну, от -10 до 245 это конечно бред) -127 - +128 это результат использования дополнительного кода числа, вида представления отрицательных чисел
ты крутой чел я твой фанат
Также пайтонисты: print("Hello, World!")
Также эзотерики: H
Сделай подробное видео как установить ассемблер пж! Мне нравится этот язык, помогиииии
Надеюсь это просто шутка, а не реальный вопрос
Коротким получится, видео, там надо-то в командной строке написать дебуг и нажать энтер )))
Чувак учи мат часть!!!!!!!!! Python не является компилируемым языком программирования - это интерпретатор. Паскаль - да. Это классика, а Python блин нееет!!!
Почему запустить код сложнее чем её написать, это язык мазохистов
Python не переводится в машинный код, он исполняется интерпретатором
А процессор как его понимает?
это конечно ассемблер, только всю работу сделала операционка
Не братан, нет здесь прфесоров из МФТИ...
вот менее костыльная версия на 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
А и ещё, я ассемблер использую только для bootload или других низкоуровневых приколов а так я пишу на c
ПРОШУ ЗАМЕТИТЬ НЕ НА C++ А НА C ЭТО РАЗНЫЕ ВЕЩИ!
@@mangrogred понимаю, как я не гуглю си, мне вечно подсовывают с++
когда хотел написать hello world но создал код по призванию дьявола
4:12 Да уж, программер еще тот... "для зап инф-и исп-ют 1 байт, это число от -127 до 255"
капец просто...
Не вижу противоречий.
Честно, я уже не помню всех нюансов (видео давно вышло), но 8 бит мы можем представить как значение с резервацией под знак в первом бите, или без него. Если со знаком, то диапазон у нас от -127 до 128. А если без знака то от 0 до 255.
Вопросы?
@@PseudoDev да хрен с ним с тем байтом, люди смотрят и ладно.. Не принципиально... Это все равно что зоолог сказал бы "у слона пять конечностей, на четырех он ходит, а пятый - хобот, болтается без дела, пока тот не решит им сорвать грушу с дерева или окатить себя водой и реки"...
Python не заточен на компиляцию он интерпритируемый язык программирования
@Анонимус 228 ну уж теперь всё встало на свои места
Школота так и не освоила магию jit :-)))
Я понимаю, зачем это студентам, которым это надо сдавать. Я понимаю, зачем это крутым системным программистам, которые сопрягают ОС, девайсы, пишут драйверы, компиляторы и т.д. Я не понимаю, зачем это 99,98% обычных программистов, которые и разрабатывают примерно 100% обычного софта... Ну, кроме понимания сути процессов, но ведь для этого достаточно самых-самых основ...
А это здорово тренирует мозг мыслить алгоритмами. Чисто для примера: у нас в вузе мы проходили ассемблер на кр580, в котором, не то чтобы возведения в степень, даже банального умножения нет. И тебе приходиться подробно прорабатывать алгоритм решения задачи в ограниченных условиях
Kotlin, python и JavaScript - Это не не компилируемые языки программирования!
нет
Kotlin компилируется в байт-код для jvm. JS может как интерпретироваться, так и компилироваться при запуске(компиляция JIT(just in time)). Python в целом да, интерпретируется, но есть библиотеки, которые позволяют при запуске компилировать определенные фрагменты кода(полезно, когда эти самые фрагменты работают медленнее всего)
Ассемблер создан для кирпичей и картошки
Запомните детишки: самый низкоуровневый язык - это перфокарты.
Кхм.. Питон не компилируется
Даже Brainfuck не такой страшный...
У меня голова от c++ ломается а тут asm какойта
А если я не ошибаюсь python интерпритируемый язык программирования
Верно:)
Но, в принципе, можно собрать "ехешник", только вот он будет громоздким, весить минимум 2мб(интерпретатор будет кочевать с программой в PE формате)