05. Основы устройства компьютера. Регистры и команды процессора. [Универсальный программист]

Поделиться
HTML-код
  • Опубликовано: 29 дек 2024

Комментарии • 25

  • @ПозитивныйДэн-х4ш
    @ПозитивныйДэн-х4ш 2 года назад +11

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

  • @limoshkamilk9887
    @limoshkamilk9887 2 месяца назад +1

    Спасибо Вам, канал "офигенный" вы просто молодцы, так совершенно доносить информацию. Ваша работа бесценна, желаю развития и реализации любых Ваших проектов❤❤❤

  • @sl17rider
    @sl17rider 3 года назад +7

    Коммент в поддержку канала! :)

  • @nanoqsh
    @nanoqsh 3 года назад +10

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

  • @magadan4626
    @magadan4626 2 года назад +3

    Можете объяснить? Вот есть система команд и есть инструкции, есть регистр команд, который говорит процессору, какую инструкцию выполнять....
    Инструкции и команды - это одно и тоже? Почему в контексте процессоров они упоминаются одновременно?

    • @Uni-Coder
      @Uni-Coder  2 года назад +2

      Да, это одно и то же.
      Упоминаю оба термина, потому что в русскоязычной литературе/видео/лекциях и т.д. тоже упоминаются оба термина.

  • @Krylowandrey
    @Krylowandrey 6 месяцев назад

    Можно ли где ни будь посмотреть весь процесс сложения 2х чисел на уровне физических процессов ( напряжение, сопративлений, сила тока и т.п.)?

    • @ДанилЧисняков
      @ДанилЧисняков 5 месяцев назад +1

      если такое интересно, то тут нужно идти изучать цифровую схемотехнику. Где описано из какой элементной базы создаются сумматоры, зная элементую базу можно узнать какие там сопротивления и токи.

  • @vic7871
    @vic7871 2 года назад +2

    Спасибо!

  • @PianoElipse
    @PianoElipse 2 года назад +3

    хаха а я писал такую инструкцию, которая указана на preview. По факту это просто умножение числа в 4 раза (shl eax, 2)

  • @wizard_still
    @wizard_still Месяц назад

    Получается регистры хранят команды процессору? Просто везде пишут что там хранятся промежуточные вычисления. Не очень ясно как в 64 битах регистра обрабатываются гигабайты данных, когда работает программа. Получается что в регистрах вычисления не производятся? Те регистры как дирижёр ддя процессора?

    • @Uni-Coder
      @Uni-Coder  Месяц назад

      Нет, команды процессору хранятся в оперативной памяти. В регистрах лежат данные. Ну, и в оперативной памяти тоже данные лежат, там и данные, и команды

  • @stepanshnder1850
    @stepanshnder1850 Год назад +1

    Слушай я вот что не понял. Допустим в АЛУ процессора идет комбинация вентилей И например: 1010. Так вот, каждая следующая логическая операция идет после прежней, но при этом не записывает данные предыдущей. Вот как тогда процессор понимает что именно комбинация 1010 произошла и должна быть записана в регистр???? Ведь там нет шины которая передает данные в регистр отдельно

    • @Uni-Coder
      @Uni-Coder  Год назад +1

      Ну, дружище, это уже схемотехника, а у меня канал про программирование. Я уж так в общих чертах объяснил про устройство процессоров, чтобы программисты понимали, и регистры, которые доступны программным способом через машинные инструкции. А глубже копаться - это уже дело электроники и схемотехники. Я думаю, там должны быть какие-то промежуточные регистры, которые защёлкивают данные первой операции, чтобы потом отправить их во вторую операцию. Просто эти регистры программно недоступны, нет ассемблерных команд для их чтения/записи.
      Ну если я правильно понял вопрос.

    • @stepanshnder1850
      @stepanshnder1850 Год назад +3

      @@Uni-Coder я спросил у чат гпт. Насколько я понял, то комбинация И логических операций в конце такта записывается в виде опкода в регистр, то есть процессор не знает какие отдельные биты использовались в прошлой логической операций.
      Спасибо за ответ конечно. Сам изучаю c++, интересно просто

  • @Ra.03
    @Ra.03 Год назад +1

    Кто знает !!!! Подскажите как называется это - умение из любого процессора телефона умной кофеварки или любой фигни в которой есть процессор написать программу и сделать из любой хрени устройство которое будет делать то что ты ему сказал ну по возможностям устройства??????? А главное как этому научиться ???

    • @Uni-Coder
      @Uni-Coder  Год назад +1

      Программирование микроконтроллеров. Alex Guyver, например, этим занимается.
      А программирование телефонов - это отдельная тема

  • @Uni-Coder
    @Uni-Coder  2 года назад +3

    Плейлист Универсальный программист: ruclips.net/p/PL5m-8QEDhBYvE5EDQl9p5jFabkiMu--ei
    Плейлист Реальный код: ruclips.net/p/PL5m-8QEDhBYsl0OEDVg0vX727Sfe0fS_3
    Вы можете помочь развитию канала, подписавшись на Patreon: www.patreon.com/unicoder
    или Boosty: boosty.to/unicoder
    или переведя любую сумму на карту: 5536 9140 0276 0019
    или Bitcoin: 3Cb8Jb8cZNeiMx1saUPfb2JxBwQRYYbuGF
    Также смотрите меня в Дзене: dzen.ru/unicoder

  • @РашидМинуллин
    @РашидМинуллин Год назад +3

    Коасавчик

  • @mangoost11
    @mangoost11 2 месяца назад

    Ребята Так это же ассемблер а я-то думал....😂😂😂

  • @barabucho
    @barabucho 3 года назад +2

    Очень много гемора,для писанины под х86 на asm,еще не беря во внимание всячиские замороченные оптимизации.

    • @Uni-Coder
      @Uni-Coder  3 года назад +2

      Да уж, так себе занятие

  • @TheKirk1989
    @TheKirk1989 Год назад +1

    ты просто навалил кучу инфы мне на голову, и наверное никогда не слышал про то, что такое декомпозиция... Вангую, через некоторое время ты выпустишь ролик с++ и js за час

  • @steppeez
    @steppeez 2 года назад +1

    10:36 ) for example: ADR R6, #4
    ------------------------
    10100110 00000001
    ------------------------
    ARM Architecture
    Reference Manual
    ADR
    Address to Register adds an immediate value to the PC value, and writes the result to the destination register.
    (executed code adds an immediate value to the PC value, and writes the result to the destination register)
    Encodings
    T1 ADR ,
    --------------------------------------------
    15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
    1 0 1 0 0 Rd imm8
    --------------------------------------------
    T2 ADR.W , before current instruction
    SUB ,PC,#0 Special case for zero offset
    ---------------------------------------------------------------------------
    15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
    1 1 1 1 0 i 1 0 1 0 1 0 1 1 1 1 0 imm3 Rd imm8
    ---------------------------------------------------------------------------
    T3 ADR.W , after current instruction
    ---------------------------------------------------------------------------
    15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
    1 1 1 1 0 i 1 0 0 0 0 0 1 1 1 1 0 imm3 Rd imm8
    ---------------------------------------------------------------------------
    d = UInt(Rd); imm32 = ZeroExtend(i:imm3:imm8, 32); add = TRUE;
    if BadReg(d) then UNPREDICTABLE;
    Architecture versions
    Encodings T1 All versions of the Thumb instruction set.
    Encodings T2, T3 All versions of the Thumb instruction set from Thumb-2 onwards.
    Assembler syntax
    where:
    See Standard assembler syntax fields on page 4-6.
    Specifies the destination register.
    Specifies the label of an instruction or literal data item whose address is to be loaded into
    . The assembler calculates the required value of the offset from the Align(PC,4)
    value of the ADR instruction to this label.
    If the offset is positive, encodings T1 and T3 are permitted with imm32 equal to the offset.
    Allowed values of the offset are multiples of four in the range 0 to 1020 for encoding T1 and
    any value in the range 0 to 4095 for encoding T3.
    If the offset is negative, encoding T2 is permitted with imm32 equal to minus the offset.
    Allowed values of the offset are -4095 to -1.
    In the alternative syntax forms:
    Specifies the offset value for the ADD form and minus the offset value for the SUB form.
    Allowed values are multiples of four in the range 0 to 1020 for encoding T1 and any value
    in the range 0 to 4095 for encodings T2 and T3.
    Note
    It is recommended that the alternative syntax forms are avoided where possible. However,
    the only possible syntax for encoding T2 with all immediate bits zero is
    SUB ,PC,#0.
    Operation
    if ConditionPassed() then
    EncodingSpecificOperations();
    base = Align(PC, 4); // Word-aligned PC
    R[d] = if add then (base + imm32) else (base - imm32);
    Exceptions
    None.