Physics.Math.Code
141K subscribers
5.16K photos
1.96K videos
5.8K files
4.35K links
VK: vk.com/physics_math
Чат инженеров: @math_code
Учебные фильмы: @maths_lib
Репетитор IT mentor: @mentor_it
YouTube: youtube.com/c/PhysicsMathCode

Обратная связь: @physicist_i
Download Telegram
🖥 Почему Ассемблер — это круто, но сложно

Есть высокоуровневые языки — это те, где вы говорите if — else, print, echo, function и так далее. «Высокий уровень» означает, что вы говорите с компьютером более-менее человеческим языком. Другой человек может не понять, что именно у вас написано в коде, но он хотя бы сможет прочитать слова.

Но сам компьютер не понимает человеческий язык. Компьютер — это регистры памяти, простые логические операции, единицы и нули. Поэтому прежде чем ваша программа будет исполнена процессором, ей нужен переводчик — программа, которая превратит высокоуровневый язык программирования в низкоуровневый машинный код.

Ассемблер — это собирательное название языков низкого уровня: код всё ещё пишет человек, но он уже гораздо ближе к принципам работы компьютера, чем к принципам мышления человека.

Вариантов Ассемблера довольно много. Но так как все они работают по одинаковому принципу и используют (в основном) одинаковый синтаксис, мы будем все подобные языки называть общим словом «Ассемблер».

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

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

Регистры бывают разного вида и назначения: одни служат, чтобы хранить информацию; другие сообщают о состоянии процессора; третьи используются как навигаторы, чтобы процессор знал, куда идти дальше, и так далее.

Какими бывают регистры?

▪️Общего назначения. Это 8 регистров, каждый из которых может хранить всего 4 байта информации. Такой регистр можно разделить на 2 или 4 части и работать с ними как с отдельными ячейками.
▪️Указатель команд. В этом регистре хранится только адрес следующей команды, которую должен выполнить процессор. Вручную его изменить нельзя, но можно на него повлиять различными командами переходов и процедур.
▪️Регистр флагов. Флаг — какое-то свойство процессора. Например, если установлен флаг переполнения, значит процессор получил в итоге такое число, которое не помещается в нужную ячейку памяти. Он туда кладёт то, что помещается, и ставит в этот флаг цифру 1. Она — сигнал программисту, что что-то пошло не так. Флагов в процессоре много, какие-то можно менять вручную, и они будут влиять на вычисления, а какие-то можно просто смотреть и делать выводы. Флаги — как сигнальные лампы на панели приборов в самолёте. Они что-то означают, но только самолёт и пилот знают, что именно.
▪️Сегментные регистры. Нужны были для того, чтобы работать с оперативной памятью и получать доступ к любой ячейке. Сейчас такие регистры имеют по 32 бита, и этого достаточно, чтобы получить 4 гигабайта оперативки. Для программы на Ассемблере этого обычно хватает.

Так вот: всё, с чем работает Ассемблер, — это команды процессора, переменные и регистры.

Здесь нет привычных типов данных — у нас есть только байты памяти, в которых можно хранить что угодно. Даже если вы поместите в ячейку какой-то символ, а потом захотите работать с ним как с числом — у вас получится. А вместо привычных циклов можно просто прыгнуть в нужное место кода.
Подробнее в нашей статье в vk группе Physics.Math.Code

📕 Практический анализ двоичных файлов [2021] Эндриесс Дэннис

📙 Тайная жизнь программ. Как создать код, который понравится вашему компьютеру [2023] Джонатан Стейнхарт

📚 Подборка статей по Assembler от Ravesli

📙 LLVM: инфраструктура для разработки компиляторов [2015] Бруно Кардос Лопес, Рафаэль Аулер

📚 Подбор книг по электронике и микроконтроллерам: ОТ ЛАМЕРОВ ДО АЦЦКИХ РАДИОЛЮБИТЕЛЕЙ 👨🏻‍💻📡

📕 Modern Assembly Language Programming with the ARM Processor [2016] Larry D. Pyeatt

📕 Изучаем Ассемблер [2005] Крупник

📘 Assembly Programming and Computer Architecture for Software Engineers [2017] Brian R. Hall, Kevin J. Slonka

#программирование #низкоуровневое_программирование #Linux #assembler #cpp #C

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
79🔥45👍24🤔2👨‍💻1🙈1🤝1
📘 The Elements of Computing Systems: Building a Modern Computer from First Principles [2005 + 2021] Noam Nisan and Shimon Schocken

💾 Скачать книги

📱 May 2024 CACM: Nand to Tetris: Building a Modern Computer System from First Principles

📱 Shimon Schocken

📱 Nand2Tetris - Building a modern computer

Источник: From Nand to Tetris

На coursera:
▪️ Построение современного компьютера на основе первых принципов: От Nand до Tetris (проектно-ориентированный курс)
▪️ Построение современного компьютера на основе первых принципов: От Nand до Tetris Part II (курс, ориентированный на проект)

Описание: На этом курсе, ориентированном на проекты*, Вы построите современную компьютерную систему с нуля. Мы разделим это увлекательное путешествие на шесть практических проектов, которые проведут Вас от конструирования элементарных логических вентилей до создания полностью функционирующего компьютера общего назначения. В процессе обучения Вы узнаете - самым прямым и конструктивным образом - как работают компьютеры и как они создаются. Что Вам потребуется: Это самостоятельный курс: все знания, необходимые для успешного прохождения курса и создания компьютерной системы, будут даны в процессе обучения. Поэтому мы не предполагаем никаких предыдущих знаний в области информатики или инженерии, и все учащиеся приветствуются на борту. Вам не понадобится никаких физических материалов, поскольку Вы будете собирать компьютер на своем собственном ПК, используя программный аппаратный симулятор, точно так же, как настоящие компьютеры проектируются компьютерными инженерами в полевых условиях. Аппаратный симулятор, а также другие программные инструменты будут предоставлены Вам бесплатно после регистрации на курс. Формат курса: Курс состоит из шести модулей, каждый из которых включает серию видеолекций и проект. Вам потребуется около 2-3 часов для просмотра лекций каждого модуля и около 5-10 часов для выполнения каждого из шести проектов. Курс можно пройти за шесть недель, но Вы можете делать это в своем собственном темпе. Вы можете посмотреть выступление на TED об этом курсе, набрав в Гугле "nand2tetris TED talk". *О проектно-ориентированных курсах: Курсы, ориентированные на проект, предназначены для того, чтобы помочь Вам завершить личностно значимый проект в реальном мире, а Ваш преподаватель и сообщество учеников с аналогичными целями будут давать Вам советы и рекомендации на этом пути. Активно применяя новые концепции в процессе обучения, Вы овладеете содержанием курса более эффективно; кроме того, у Вас появится возможность использовать полученные навыки для внесения позитивных изменений в свою жизнь и карьеру. По окончании курса у Вас будет готовый проект, которым Вы сможете с гордостью пользоваться и делиться. #программирование #низкоуровневое_программирование #Linux #assembler #cpp #C

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
30🔥15👍7😍2🗿1
📘 The Elements of Computing Systems.zip
26.1 MB
📘 The Elements of Computing Systems: Building a Modern Computer from First Principles [2005 + 2021] Noam Nisan and Shimon Schocken

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

Достоинства:
Хорошая структурированность;
Оригинальный авторский подход.

☕️ Для тех, кто захочет задонать на кофе:
ВТБ: +79616572047 (СБП) ЮMoney: 410012169999048

#программирование #низкоуровневое_программирование #архитектура #computer_science #assembler #cpp #C

💡 Physics.Math.Code // @physics_lib
132👍21🔥7👨‍💻2🤩1
📗 Прикладное машинное обучение и искусственный интеллект для инженеров [2024] Джеф Просиз
📙 Applied Machine Learning and AI for Engineers Solve Business Problems That Can't Be Solved Algorithmically [2022] Jeff Prosise

💾 Скачать книги RU + EN

Сейчас такой литературы полно, но у этой книги есть ряд преимуществ:
▫️1) она написана с точки зрения прямого прикладного применения ML-моделей и при этом содержит в себе очень большой обзор и очень много полезных примеров
▫️2) книга написана увлекательно и очень понятным языком
▫️3) книга переведена на русский язык и перевод качественный
▫️4) здесь есть даже инструкции, как внедрять облачные сервисы с ИИ в свои собственные приложения по API, и много подобных практически полезных вещей

Книга состоит из двух частей:
▪️ ЧАСТЬ 1. МАШИННОЕ ОБУЧЕНИЕ С ПОМОЩЬЮ SCIКIT-LEARN
▪️ ЧАСТЬ 2. ГЛУБОКОЕ ОБУЧЕНИЕ С ПОМОЩЬЮ КERAS И TENSORFLOW

В каждой части по 7 глав, где рассмотрены основные модели и как ими пользоваться, как внедрять и применять, много примеров прикладных задач присутствует в каждой главе. #AI #ИИ #машинное_обучение #python #искусственный_интеллект #математика #computer_science

💡 Physics.Math.Code // @physics_lib
👍2410🔥9👨‍💻2❤‍🔥1
Прикладное_машинное_обучение_и_искусственный_интеллект_для_инженеров.zip
56.3 MB
📗 Прикладное машинное обучение и искусственный интеллект для инженеров [2024] Джеф Просиз

📙 Applied Machine Learning and AI for Engineers Solve Business Problems That Can't Be Solved Algorithmically [2022] Jeff Prosise


Книга рассказывает о применении искусственного интеллекта и машинного обучения в бизнесе и инженерной практике. Подробно описаны популярные алгоритмы машинного обучения и разъяснено, когда их целесообразно использовать. Приведены примеры построения моделей машинного обучения на языке Python с помощью библиотеки Scikit-Learn, а также создания нейронных сетей посредством библиотек Keras и TensorFlow. Изложены базовые принципы и способы оценки регрессионных моделей, моделей бинарной и многоклассовой классификации. Показаны примеры создания модели распознавания лиц и обнаружения объектов, языковых моделей, отвечающих на естественно-языковые вопросы и переводящих текст на другие языки. Рассмотрено использование набора облачных API Cognitive Services для внедрения ИИ в различные приложения. #AI #ИИ #машинное_обучение #python #искусственный_интеллект #математика #computer_science

💡 Physics.Math.Code // @physics_lib
👍36🔥14106💯3🥰2
📚 «Необыкновенная физика обыкновенных явлений» — книга Кл. Э. Суорца (перевод с английского — Е. И. Бутикова и А. С. Кондратьева). Вышла в двух томах [1986–1987]

💾 Скачать книги

Предназначена для учащихся общеобразовательных и профессиональной школ, а также для лиц, занимающихся самообразованием. В русском издании книга разделена на два тома:
▪️ Первый том — главы, посвящённые механике и термодинамике.
▪️ Второй том — главы, посвящённые волнам, оптике, электромагнетизму, физике микромира.

Некоторые положительные стороны, отмеченные читателями:
удачный подбор опытов и наблюдений, которые, не заменяя лабораторные работы, позволяют «прочувствовать» важные стороны изучаемых явлений;
лаконичность и конспективность, которые создают условия для лучшего усвоения и запоминания изученного.

Есть и негативные отзывы:
некоторые читатели отмечают, что автор иногда ограничивается рассмотрением некоторых частных случаев, что может спровоцировать читателя на неверные обобщения.

#физика #physics #science #подборка_книг #наука #опыты #задачи

💡 Physics.Math.Code // @physics_lib
🔥16👍108🤩2👏1
Необыкновенная_физика_обыкновенных_явлений_1986_1987_Суорц.zip
8.8 MB
📚 «Необыкновенная физика обыкновенных явлений» — книга Кл. Э. Суорца (перевод с английского — Е. И. Бутикова и А. С. Кондратьева). Вышла в двух томах [1986–1987]

В книге дано современное изложение начал физики. Каждая графа начинается разделом "Знакомство с явлениями", в котором читателю предлагается проделать простейшие опыты и наблюдения с помощью легкодоступных подручных средств. Подобранные примеры с минимальным использованием математических средств позволяют развить физическую интуицию и умение применять знание физики в практической деятельности. В русском издании книга разделена на два тома. В первый том вошли главы, посвященные механике и термодинамике. Во второй том вошли главы, посвященные волнам, оптике, электромагнетизму, физике микромира. Для учащихся общеобразовательных и профессиональной школ, а также для лиц, занимающихся самообразованием.

▪️ Каждая глава начинается разделом «Знакомство с явлениями», в котором читателю предлагается проделать простейшие опыты и наблюдения с помощью легкодоступных подручных средств.
▪️ Изложение теоретического материала с минимальным использованием математических средств.
▪️ Текст сопровождается многочисленными рисунками, схемами, диаграммами и графиками, а зачастую — лаконичными простыми оценками и расчётами.

#физика #physics #science #подборка_книг #наука #опыты #задачи

💡 Physics.Math.Code // @physics_lib
👍2813🔥13🤩1