Спасибо Вам, канал "офигенный" вы просто молодцы, так совершенно доносить информацию. Ваша работа бесценна, желаю развития и реализации любых Ваших проектов❤❤❤
Можете объяснить? Вот есть система команд и есть инструкции, есть регистр команд, который говорит процессору, какую инструкцию выполнять.... Инструкции и команды - это одно и тоже? Почему в контексте процессоров они упоминаются одновременно?
если такое интересно, то тут нужно идти изучать цифровую схемотехнику. Где описано из какой элементной базы создаются сумматоры, зная элементую базу можно узнать какие там сопротивления и токи.
Получается регистры хранят команды процессору? Просто везде пишут что там хранятся промежуточные вычисления. Не очень ясно как в 64 битах регистра обрабатываются гигабайты данных, когда работает программа. Получается что в регистрах вычисления не производятся? Те регистры как дирижёр ддя процессора?
Слушай я вот что не понял. Допустим в АЛУ процессора идет комбинация вентилей И например: 1010. Так вот, каждая следующая логическая операция идет после прежней, но при этом не записывает данные предыдущей. Вот как тогда процессор понимает что именно комбинация 1010 произошла и должна быть записана в регистр???? Ведь там нет шины которая передает данные в регистр отдельно
Ну, дружище, это уже схемотехника, а у меня канал про программирование. Я уж так в общих чертах объяснил про устройство процессоров, чтобы программисты понимали, и регистры, которые доступны программным способом через машинные инструкции. А глубже копаться - это уже дело электроники и схемотехники. Я думаю, там должны быть какие-то промежуточные регистры, которые защёлкивают данные первой операции, чтобы потом отправить их во вторую операцию. Просто эти регистры программно недоступны, нет ассемблерных команд для их чтения/записи. Ну если я правильно понял вопрос.
@@Uni-Coder я спросил у чат гпт. Насколько я понял, то комбинация И логических операций в конце такта записывается в виде опкода в регистр, то есть процессор не знает какие отдельные биты использовались в прошлой логической операций. Спасибо за ответ конечно. Сам изучаю c++, интересно просто
Кто знает !!!! Подскажите как называется это - умение из любого процессора телефона умной кофеварки или любой фигни в которой есть процессор написать программу и сделать из любой хрени устройство которое будет делать то что ты ему сказал ну по возможностям устройства??????? А главное как этому научиться ???
Плейлист Универсальный программист: 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
ты просто навалил кучу инфы мне на голову, и наверное никогда не слышал про то, что такое декомпозиция... Вангую, через некоторое время ты выпустишь ролик с++ и js за час
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.
Невероятно крутой человек. На ютубе полно всякой информации, но реально полезную и трудную для понимания показывают только невероятно крутые люди.
Спасибо Вам, канал "офигенный" вы просто молодцы, так совершенно доносить информацию. Ваша работа бесценна, желаю развития и реализации любых Ваших проектов❤❤❤
Коммент в поддержку канала! :)
Спасиб!
Ассемблер полезная штука, можно читать скомпилированный код и смотреть как компилятор его оптимизировал
Можете объяснить? Вот есть система команд и есть инструкции, есть регистр команд, который говорит процессору, какую инструкцию выполнять....
Инструкции и команды - это одно и тоже? Почему в контексте процессоров они упоминаются одновременно?
Да, это одно и то же.
Упоминаю оба термина, потому что в русскоязычной литературе/видео/лекциях и т.д. тоже упоминаются оба термина.
Можно ли где ни будь посмотреть весь процесс сложения 2х чисел на уровне физических процессов ( напряжение, сопративлений, сила тока и т.п.)?
если такое интересно, то тут нужно идти изучать цифровую схемотехнику. Где описано из какой элементной базы создаются сумматоры, зная элементую базу можно узнать какие там сопротивления и токи.
Спасибо!
хаха а я писал такую инструкцию, которая указана на preview. По факту это просто умножение числа в 4 раза (shl eax, 2)
Получается регистры хранят команды процессору? Просто везде пишут что там хранятся промежуточные вычисления. Не очень ясно как в 64 битах регистра обрабатываются гигабайты данных, когда работает программа. Получается что в регистрах вычисления не производятся? Те регистры как дирижёр ддя процессора?
Нет, команды процессору хранятся в оперативной памяти. В регистрах лежат данные. Ну, и в оперативной памяти тоже данные лежат, там и данные, и команды
Слушай я вот что не понял. Допустим в АЛУ процессора идет комбинация вентилей И например: 1010. Так вот, каждая следующая логическая операция идет после прежней, но при этом не записывает данные предыдущей. Вот как тогда процессор понимает что именно комбинация 1010 произошла и должна быть записана в регистр???? Ведь там нет шины которая передает данные в регистр отдельно
Ну, дружище, это уже схемотехника, а у меня канал про программирование. Я уж так в общих чертах объяснил про устройство процессоров, чтобы программисты понимали, и регистры, которые доступны программным способом через машинные инструкции. А глубже копаться - это уже дело электроники и схемотехники. Я думаю, там должны быть какие-то промежуточные регистры, которые защёлкивают данные первой операции, чтобы потом отправить их во вторую операцию. Просто эти регистры программно недоступны, нет ассемблерных команд для их чтения/записи.
Ну если я правильно понял вопрос.
@@Uni-Coder я спросил у чат гпт. Насколько я понял, то комбинация И логических операций в конце такта записывается в виде опкода в регистр, то есть процессор не знает какие отдельные биты использовались в прошлой логической операций.
Спасибо за ответ конечно. Сам изучаю c++, интересно просто
Кто знает !!!! Подскажите как называется это - умение из любого процессора телефона умной кофеварки или любой фигни в которой есть процессор написать программу и сделать из любой хрени устройство которое будет делать то что ты ему сказал ну по возможностям устройства??????? А главное как этому научиться ???
Программирование микроконтроллеров. Alex Guyver, например, этим занимается.
А программирование телефонов - это отдельная тема
Плейлист Универсальный программист: 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
Коасавчик
Ребята Так это же ассемблер а я-то думал....😂😂😂
Очень много гемора,для писанины под х86 на asm,еще не беря во внимание всячиские замороченные оптимизации.
Да уж, так себе занятие
ты просто навалил кучу инфы мне на голову, и наверное никогда не слышал про то, что такое декомпозиция... Вангую, через некоторое время ты выпустишь ролик с++ и js за час
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.