Size: a a a

2020 August 17

0

0xFF in supapro.cxx
Удали
источник

ПК

Побитый Кирпич... in supapro.cxx
да
источник

S

Serwillow in supapro.cxx
Eugene Krasnikov (ᴊɪɴ x)
Я вставлю свои 5 копеек. Хотя я не профи в плюсах, изучаю его сам.
Но довольно хорошо знаю ассемблер.

Так вот, чтобы знать архитектуру ОС, процессоров, памяти, создание дров и пр., надо изучать именно эти темы.
Я тебе могу много книг и ссылок на эту тему скинуть (и по асму тоже).

На С++ можно много чего написать, но само изучение С++ этих знаний (низкоуровневых архитектур) не даст. И с совсем низкоуровневыми вещами там обычно не сталкиваешься. Но если изучить асм как язык, не изучая архитектуру процессора, памяти, ОС, то толку от этого тоже будет мало. ну знаешь ты инструкции процессора, а как их использовать в реале — нет, какой толк? Правда, обычно руководства по асму всё же дают и прикладную информацию.

Через асм иногда проще сделать что-то сильно низкоуровневое, чем на чистом С++ и тем более на каком-нибудь Python. Но дрова можно написать вполне на плюсах.
На асме писать прикольно, но в реальной жизни он нужен либо для очень специфических вещей (совсем глубоких), либо для дизассемблирования и понимания что происходит. Либо когда просто по приколу хочется написать что-то на асме :))

Можно вообще параллельно изучать архитектуры, асм и С++, если есть время.
Но для простоты, наверное, стоит действительно сначала сделать упор на С++ (почитать пару книг), затем лезть в асм и пр. Но асм по любому изучать лучше параллельно изучению архитектур.

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

Е

Егор in supapro.cxx
пасиб
источник

EK

Eugene Krasnikov (ᴊɪ... in supapro.cxx
Serwillow
Ну как бы уважение. Я понял мысль, сконцентрируюсь тогда на плюсах в основном, а потом уже в остальное лезть буду, когда уже уверенно буду чувствовать себя
Сам по себе асм (я имею в виду директивы, макрокоманды и т.п. конкретных трансляторов-компиляторов... да и даже инструкции процессора, по крайней мере, без AVX) изучить проще (быстрее, по меньшей мере), чем С++ :))
Сложность асма чисто в практическом использовании — в знании архитектур, ОС, ABI и пр.
источник

RN

Ruslan Neshta in supapro.cxx
а зачем каст?
источник

S

Serwillow in supapro.cxx
Eugene Krasnikov (ᴊɪɴ x)
Сам по себе асм (я имею в виду директивы, макрокоманды и т.п. конкретных трансляторов-компиляторов... да и даже инструкции процессора, по крайней мере, без AVX) изучить проще (быстрее, по меньшей мере), чем С++ :))
Сложность асма чисто в практическом использовании — в знании архитектур, ОС, ABI и пр.
Как я понял, изучить тогда, когда мне это действительно будет нужно?
источник

Е

Егор in supapro.cxx
Ruslan Neshta
а зачем каст?
чтоб массив получить из указателя
источник

ПК

Побитый Кирпич... in supapro.cxx
Егор
чтоб массив получить из указателя
надо чтобы там реально был массив
источник

Е

Егор in supapro.cxx
Побитый Кирпич
надо чтобы там реально был массив
да оно понятно
источник

RN

Ruslan Neshta in supapro.cxx
Eugene Krasnikov (ᴊɪɴ x)
Сам по себе асм (я имею в виду директивы, макрокоманды и т.п. конкретных трансляторов-компиляторов... да и даже инструкции процессора, по крайней мере, без AVX) изучить проще (быстрее, по меньшей мере), чем С++ :))
Сложность асма чисто в практическом использовании — в знании архитектур, ОС, ABI и пр.
мб вы приведете примеры с чем вы работали(или же область где глубокие знания асма пригодились)? если не секрет конечно
источник

RN

Ruslan Neshta in supapro.cxx
Егор
чтоб массив получить из указателя
ну для теста просто?
источник

T

Toss (gpskwlkr) in supapro.cxx
Ребят
Планирую изучать алгоритмы и структуры данных
Бэкграунд в плане программирования есть (бэкенд с#), но все плохо с математическим бэкграундом

Что можете посоветовать?
источник

BH

Blue Heart in supapro.cxx
Toss (gpskwlkr)
Ребят
Планирую изучать алгоритмы и структуры данных
Бэкграунд в плане программирования есть (бэкенд с#), но все плохо с математическим бэкграундом

Что можете посоветовать?
Кормен
источник

Е

Егор in supapro.cxx
Ruslan Neshta
ну для теста просто?
не понял что за тест, просто вопрос, мне ответили, всем спасибо
источник

RN

Ruslan Neshta in supapro.cxx
ок
источник

EK

Eugene Krasnikov (ᴊɪ... in supapro.cxx
Serwillow
Как я понял, изучить тогда, когда мне это действительно будет нужно?
Ну вообще, ИМХО, это полезно изучать, чтобы понимать как всё работает внутри. И как лучше что-то сделать, а как не надо делать.
Вот грубо говоря, написал ты строку для простого действия и кажется — ну нормально. А там под капотом целый слон.

К примеру, написал двойной цикл (for внутри for), работаешь с массивом и не знаешь ничего про кэш процессора.
А если знаешь, будешь понимать, что такой вариант неэффективно работает с кэшем, а такой — лучше. И поменяешь местами эти for'ы, скорость прилично вырастет.
источник

EK

Eugene Krasnikov (ᴊɪ... in supapro.cxx
У питонистов часто бывает, потому что они далеки от архитектур обычно. Создадут 500 доп. массивов, 300 копирований туда-сюда и рекурсию на 100 уровней. И рады — смотри какой код красивый, всего 2 строки :)
Когда это можно за один проход сделать по исходному массиву, но в 5 строк, путь это даже не так "красиво" выглядит.
источник

EK

Eugene Krasnikov (ᴊɪ... in supapro.cxx
Не в обиду питонистам :)
источник

MN

Midow Noname in supapro.cxx
а если запустить lldb для простого out или exe который без -g то там ассемблер?
источник