О чем этот материал
Полупроводники, транзисторы, логические элементы, память и путь к программированию.
Это адаптированная версия учебной презентации: слайды разобраны в формате обычной статьи, чтобы материал было легче читать с телефона и возвращаться к нужным блокам позже.
Что внутри
Ниже краткий план материала. По нему удобно понять, в каком порядке разбирать тему.
- Вспомним чуть-чуть химии
- Вспомним чуть-чуть физики
- Поговорим И о логике ИЛИ НЕ поговорим
- Посмотрим на твердое (hard)
- Поговорим о мягком (soft)
- Разберем вопросы
Внезапно
Атом
Проводимость электричества
Диэлектрики
Проводники
Полупроводники
Транзистор
Двоичная система
Складываем в столбик
Немножко логики
Давайте играться
Инвертор (НЕ)
Логическое умножение (И - AND)
Логическое сложение (ИЛИ - OR)
Сумматор
Компаратор
Ячейка памяти
Проектируем
Микросхема
Подключаем
Процессор
Процессоры работают согласно фиксированному циклу:
получение инструкции декодирование выполнение и сохранение результатов.
Этот цикл повторяется множество раз в секунду
Программирование
Ассемблер
Здесь мы определяем строку "Hello, World!" с символом окончания строки (null-terminated).
Мы объявляем _start как глобальную метку, которая будет точкой входа в программу.
используется в Linux для вывода данных на стандартный вывод.
который равен 1.
- Секция .data используется для объявления данных в памяти.
- Секция .text содержит исполняемый код программы.
- mov eax, 4 загружает в регистр eax номер системного вызова для функции write, который
- mov ebx, 1 загружает в ebx номер файлового дескриптора для стандартного вывода (stdout),
- mov ecx, hello и mov edx, 13 загружают в ecx адрес строки и в edx её длину
- int 0x80 генерирует прерывание, которое вызывает системный вызов, указанный в eax
- После вывода строки, программа должна корректно завершиться. mov eax, 1 и xor ebx,
Язык С (си)
(многопоточности)
микросхем)
- Полный контроль над управлением памятью
- Нет встроенной конкурентности
- Синтаксис минималистичен. Нет “сахара”
- Доступ к системным вызовам
- Разработка встроенного ПО (прошивка
- Драйвер, операционные системы
- Критически важна производительность