Архитектура ЭВМ Лекция 8: Assembly Language "Hello World". Основы отладки в GDB.

Поділитися
Вставка
  • Опубліковано 19 кві 2022
  • Видео посвящено больше чем первым шагам в программировании на языке ассемблера. Начиная с изучения структуры исполняемого файла, постепенно рассматривается как написание простой программы Hello World, так и детальное выполнение её с использованием отладчика GDB. Это позволяет отследить выполнение каждой инструкции и получить базовые знания использования отладчика. Лектор: Кирилл Кринкин
    Другие полезные материалы: online.osll.ru/useful

КОМЕНТАРІ • 86

  • @opencart-course7758
    @opencart-course7758 2 роки тому +4

    Классный мужик! Блин почему не попадались такие преподы в свое время...

  • @_Yar_
    @_Yar_ 2 роки тому +10

    Супер лектор! Классная подача материала. Монтаж, звук, на высшем уровне. Спасибо!

  • @666fedr
    @666fedr 2 роки тому +8

    когда я был мелким, я пробовал разобраться в асме... n часов сидения в оллидебаг с разглядыванием того что происходит, с видом как баран на новые ворота...
    сколько ж лет прошло, и до меня таки дошло, что за eax, ebx и тд и ЗАЧЕМ же наконец они чем-то заполняются...
    да, за способ предоставления материала отдельный респект: видно и слышно все, что нужно.

  • @user-yf7qw3yk4r
    @user-yf7qw3yk4r 2 роки тому +8

    Это очень важно, такие штуки не потерять. С них начинается все: ОС, языки, ваши сети нейронов и прочее.
    Я рад, что еще есть молодые люди, которым эту базу дают.

  • @FalconAtSamara
    @FalconAtSamara 2 роки тому +28

    Отличная лекция! С 98 года не писал на ассемблере, получил истинное наслаждение.

    • @DmitriyShuvalov
      @DmitriyShuvalov 2 роки тому +1

      Мля по сколько нам лет, кто трогал асм? 😜😁🙈🙈

    • @kirillholt2329
      @kirillholt2329 2 роки тому

      не писал с прошлого года и не очень скучаю, но х86 мб слишком душный мб раньше лучше были

    • @user-mp4gx2bt9r
      @user-mp4gx2bt9r 2 роки тому

      @@DmitriyShuvalov д

  • @namefamily1504
    @namefamily1504 2 роки тому +6

    Классная лекция, последний раз на ассемблере писал в 1993 году, потом перешел на С++ и расчетные модули коммерческих проектов )))) но приятно было послушать и вспомнить.

  • @8888UNIVERSE8888
    @8888UNIVERSE8888 2 роки тому +1

    Молодец учитель =) Спасибо большое за видео!

  • @gnu7087
    @gnu7087 2 роки тому +5

    Неужели я этого дождался... ура!

  • @danilmerkurev6248
    @danilmerkurev6248 Рік тому +2

    Отличная лекция! Захотелось поступить в этот ВУЗ

  • @viktoryakovenko757
    @viktoryakovenko757 2 роки тому

    это один из тех преподавателей которые заслуживают внимания. я вам говорю. слушайте его.

  • @MCVanyusha
    @MCVanyusha 2 роки тому

    Отличный лектор!

  • @user-xu4bd8sr7v
    @user-xu4bd8sr7v 2 роки тому +2

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

  • @BneiElohim
    @BneiElohim 2 роки тому +1

    Muito interessante essa aula..👏👏

  • @Skif0007
    @Skif0007 2 роки тому

    давайте больше этого мужика)

  • @dimasutormin3403
    @dimasutormin3403 2 роки тому

    Кайфанул! Давно я не писал на ассемблере

  • @aleksbotler5358
    @aleksbotler5358 2 роки тому +4

    Случайно попалась лекция, решил вспомнить детство. занятно. непривычный синтаксис ассемблера в плане порядка "источник -приемник ", привык сперва куда, потом откуда. И огорчает, что Интел осталась верна своим идиотским мне мнемоникам 🙂

  • @user-tg6yo7io2y
    @user-tg6yo7io2y 2 роки тому +6

    Лайк за XOR EBX,EBX! 😀

  • @shelegshalomovich7222
    @shelegshalomovich7222 2 роки тому +1

    случайно попал. отличная лекция, у нас таких не было, собственно поэтому к asm относился как к дисциплинам "сдал и забыл".

  • @ignatloskutov2792
    @ignatloskutov2792 2 роки тому

    А может кто-нибудь подсказать, кто такие эти «другие архитектуры», к которым AT&T-синтаксис готовит студента лучше, чем интеловский? Например, на aarch64 вроде инструкции выглядят в духе «mov x0, #1» и «ldr x1, [x2]», что явно больше похоже на Intel-синтаксис, чем на AT&T (destination-операнд первый, во всяком случае, а регистры именуются без дополнительных префиксов). RISC-V: в инструкциях вроде «ADD x3, x2, x1» за destination тоже отвечает первый операнд. Для косвенных обращений там синтаксис, впрочем, проклятый (аналогичный AT&T), но в целом не выглядит чтобы AT&T-синтаксис как-то заметно легче переносился на другие архитектуры.

  • @depressivepumpkin7312
    @depressivepumpkin7312 2 роки тому +1

    увидеть на Qemu было бы очень интересно

  • @rhdrhe6241
    @rhdrhe6241 2 роки тому

    подскажите на сколько хорош компилятор Myasm по мне так он хорош по стеку? может кто больше с ним работал?

  • @rhdrhe6241
    @rhdrhe6241 2 роки тому

    кто разбирается в ассемблере подскажите в стек первым аргументом оправляется то что с право 3 ? а это тому подтверждение ,прототип аргументов потому что это созданная процедура в момент написания кода AddDigs proto arg1 :DWORD ,arg2 :DWORD ассемблер всегда оправляет первым в стек правый аргумент? в плане этой версии ассемблера

  • @sergeyelbakyan833
    @sergeyelbakyan833 Рік тому

    Интересная лекция, но я не понял момент с system call int, есть у кого-нибудь материалы которые обещали расшарить на 21:05 ? Поделитесь, пожалуйста, ссылкой

  • @rhdrhe6241
    @rhdrhe6241 2 роки тому

    подскажите что считается заголовком процедуры и прототипом ?
    вот примеры
    AddDigs proto :DWORD :DWORD
    invoke AddDigs ,2 ,3
    AddDigs proto arg1 :DWORD ,arg2 :DWORD

  • @onlyonestarwarsfan5337
    @onlyonestarwarsfan5337 2 роки тому +6

    Assembly Language. The “Assembler” is the compiler. When you write C code, do you say that you program in gcc, or clang? No, you say C.

  • @user-li4bc9hr1s
    @user-li4bc9hr1s 2 роки тому +1

    В синктаксисе ассемблера Интел запись наоборот потому что там математическая запись , то есть x=5 а не 5=х

  • @D0sart
    @D0sart 2 роки тому +8

    Спасибо. Будет ли продолжение?

    • @industrialsoftwareengineering
      @industrialsoftwareengineering  2 роки тому +9

      Здравствуйте! Да, в ближайшее время выложим последние 3 лекции.

  • @pisuh3291
    @pisuh3291 2 роки тому

    от такой лекций у деда аж шишка встала 🤣

  • @user-rz9mj8xn9x
    @user-rz9mj8xn9x 2 роки тому

    Сразу лайк

  • @faustnata4999
    @faustnata4999 Рік тому

    На регистрах общего назначения не было сказано к какой памяти они относятся это очень важно упомянуть в начале потому что некоторые не поймут

  • @vovan_ivanoff
    @vovan_ivanoff 2 роки тому +17

    Лекция классная. Правда? Правда:)

  • @3x__
    @3x__ 2 роки тому +1

    👍

  • @antondityatev2338
    @antondityatev2338 2 роки тому

    - А метку ее неоткуда?
    - Отличный вопрос!

  • @badcat2922
    @badcat2922 2 роки тому

    Двадцать лет назад нам препод пояснил, что это седая древность. Чувствовал себя археологом, копаясь в этом. Сейчас это перешло в разряд античности.

  • @user-sl4th2pu1z
    @user-sl4th2pu1z 2 роки тому +2

    супер понятно, asm крута!

  • @__-nc3ct
    @__-nc3ct 2 роки тому

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

  • @imefamilno940
    @imefamilno940 2 роки тому

    Последний раз на ассемблере на процессоре 6502 в 1986 г.

  • @user-jm4nh7um9b
    @user-jm4nh7um9b 2 роки тому

    не думал что это изучают ещё ...

  • @sergeyelbakyan833
    @sergeyelbakyan833 Рік тому

    А зачем нужна строки:
    mov $1, %ebx
    xor %ebx, %ebx
    Я не сог себе объяснить, убрал их и все работает как прежде. Кто-нибудь может объяснить? Спасибо)

  • @aleksbotler5358
    @aleksbotler5358 2 роки тому

    А есть ли какой-то смысл в настоящее время изучать программирование на ассемблере?

    • @JimDi87
      @JimDi87 2 роки тому +1

      конечно, но это далеко не всем нужно

    • @quadroninja2708
      @quadroninja2708 2 роки тому +1

      Это весело

    • @user-kr2ff3xr3h
      @user-kr2ff3xr3h 2 роки тому

      он самый простой для изучения. возможно для кого-то уже в этом смысл

  • @DicCurHic
    @DicCurHic 2 роки тому +1

    0:14 надо было разжевать код для загрузки с накопителя (вместо ос) для bios и uefi

  • @ignatloskutov2792
    @ignatloskutov2792 2 роки тому

    А с пятёркой проблема, конечно, в том, что передавать её адрес пытались, а надо было значение.

  • @criterrors
    @criterrors Рік тому

    Интеловский синтаксис, конечно, куда более интересный

  • @hryapacow420
    @hryapacow420 2 роки тому

    Как в конце 80х освоил ASM, тогда еще на zx spectrum на процессоре Z80, так до сих пор тока на асме и пишу если чего надо. Другие языки просто лень учить даже.

    • @ruslan...gryobaniy-youtube
      @ruslan...gryobaniy-youtube 2 роки тому

      Как я тебя понимаю!.. Я шёл по асму тоже через Z80 (а до этого программил ещё на МК52, что тоже весело). Потом пощупал x86, а теперь потихоньку использую эти знания для программирования AVR (пытаюсь строить железки для бытовых потребностей). Какой нах Си, когда работаешь с железом напрямую! Да, сложнее; да, нужно больше знать, но это же кайф контролировать каждый бит!

    • @antondityatev2338
      @antondityatev2338 2 роки тому

      @@ruslan...gryobaniy-youtube Try FPGA! Для бытовых и не только нужд.

    • @dazzershell
      @dazzershell 2 роки тому

      @@ruslan...gryobaniy-youtube когда-то решил копнуть stm32 и его Cortex поглубже, почитал какой он навороченный, и всё желание пропало. Забавно, когда вместо чёткой очерёдности инструкций у вас работает целый конвейер, где команды и данные на выполнение идут как-бы независимо, на ветвлениях параллельно выполняются обе ветки кода, и ход программы выбирается по результату операции. Отец его ковырял, дали задачу дизассемблировать прошивку, полгода жизни он туда закопал, что-то удалось, но не всё, и денег за работу ему не дали. А это был довольно простой cortex-m3, у топовых набор команд раза в 4 больше.

    • @ruslan...gryobaniy-youtube
      @ruslan...gryobaniy-youtube 2 роки тому

      @@dazzershell Грустная история... Наверное именно поэтому я не полез на STM. AVR в этом плане гораздо интереснее. Хотя бы потому, что он попроще и, соответственно, понятнее. Все навороты со встроенными в железо интерфейсы я не использую, пишу свои обработчики и получаю от этого определённый кайф, так как приходится разбираться со всеми таймаутами протоколов. Да, это гимор ещё тот, но когда получается, то испытываешь очень приятное чувство. Если хочешь познакомиться с AVR, то рекомендую почитать книгу (электронную, конечно) "AVR Учебный курс" от Di Halt. Написано с юмором, иногда с матерком и, главное, понятно и по делу, без воды. У меня это настольная (точнее: рабочестольная) книга.

  • @alexfischer7554
    @alexfischer7554 2 роки тому +1

    Американцы на ascii говорят АСК дабл и

  • @gnu7087
    @gnu7087 2 роки тому

    Начиная с 21:50 стало непонятно, что происходит (я знаю си более-менее)

    • @gnu7087
      @gnu7087 2 роки тому

      Уточню - предыдущие видео на этом канале не смотрел. Смотрел на другом, где Кирилл про ОС объяснял.
      В общем, попробую предыдущие видео посмотреть сначала.

    • @VirtuousSaint
      @VirtuousSaint 2 роки тому +3

      если вы про XOR, то это операция "исключающее "или"", которая обнуляет все биты в определенных обстоятельствах. например, когда оба операнда хранят одно и то же значение. таким образом, если надо куда-то записать значение 0, чтобы константу не создавать, проще область памяти обнулить посредством вызова XOR на нужную область (на видео - регистр ebx).

  • @jiejiexia7561
    @jiejiexia7561 2 роки тому

    右边终端是怎么实现事实追踪的。

  • @DykyKryl
    @DykyKryl 2 роки тому

    Школа Хогвартса какая то
    - immoanimus
    - immostillium

  • @user-wj1bx5mv3i
    @user-wj1bx5mv3i 2 роки тому +2

    Препод ассемблер вообще знает? :)

  • @lumed2189
    @lumed2189 2 роки тому

    subtitles in spanish......!

  • @VladVons
    @VladVons 2 роки тому

    CALL пишется с двумя L

  • @user-vo5gw1cg7f
    @user-vo5gw1cg7f 2 роки тому

    Даже я гуманитарий, немного понял. 🤪

  • @faustnata4999
    @faustnata4999 Рік тому

    Ну не ОС, а интерпретатор, ну или хотя бы "командная оболочка")

  • @y7o4ka
    @y7o4ka 2 роки тому

    Эти субтитры...

  • @Qweqwe-ev1ft
    @Qweqwe-ev1ft 2 роки тому

    если честно где тут архитектура?

  • @lordastronaut5614
    @lordastronaut5614 2 роки тому

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

    • @badcat2922
      @badcat2922 2 роки тому

      Настало время разобраться в этом фарше. Это судьба.

  • @MAGNet1911
    @MAGNet1911 2 роки тому +1

    53:09 - а почему я не мог положить просто из памяти в память?
    а действительно, почему нет? 🙂
    012727
    mov (PC)+,(PC)+
    😁

  • @user-zy7ug4sl6z
    @user-zy7ug4sl6z 2 роки тому

    535

  • @alekseybehalov5540
    @alekseybehalov5540 2 роки тому

    Древний Дядя vim i386 at&t

  • @MasterShuShuShu
    @MasterShuShuShu 2 роки тому

    Отличная лекция, но использование мейк файлов не для крестов - плохая практика. Мне один питонист в контейнер принес 500 мегабайт зависимостей просто потому, что запускал питон скрипты мейк файлом. Чем оно лучше того же sh со switch внутри мне за 20 лет никто так и не смог объяснить.

  • @user-wj1bx5mv3i
    @user-wj1bx5mv3i 2 роки тому +1

    К сожалению, этому преподавателю самому бы надо сначала подучиться.

  • @greg0r091
    @greg0r091 2 роки тому

    Очень странная лекция. Куча стилистических и фактических ошибок ещё до 10 минуты. Из простого - нет экзешников под линукс, PE32 это формат исполняемого файла по Windows, на линухе эльфы. Intel синтаксис сейчас можно много где использовать, просто компилятору надо на одну опцию больше передать...
    Иногда легче почитать столярова/зубкова, там классика вычитанная десятилетиями

    • @maxmuster7003
      @maxmuster7003 2 роки тому +1

      Batch files and com files are executable too.

    • @user-kr2ff3xr3h
      @user-kr2ff3xr3h 2 роки тому +4

      да. экзешники не потому что расширение exe, а потому что executable