Войти
Информатика 10 лекций
Архитектура ЭВМ и язык ассемблера
1
0
О курсе
Лектор
Падарян Вартан Андроникович
#лекции
О курсе

Данный курс имеет своей целью изучение базовых принципов устройства современных ЭВМ, анализ качественных и количественных характеристик различных компонент ЭВМ, анализ влияния этих характеристик на работу прикладных программ. Помимо того, в рамках курса предполагается практическое освоение языка ассемблера архитектуры IA-32, изучение особенностей этой процессорной архитектуры, изучение взаимосвязей между архитектурой набора команд, механизмами реализации языка Си и системой программирования.

Список всех тем лекций

Лекция 1. Введение.
Цель курса Свойства чисел Язык ассемблера Отладка Асимптотическая сложность Зачем сейчас нужен язык ассемблера? Литература План лекций История первых компьютеров Архитектура фон Неймана Единственный вариант архитектуры? Модельный цикл работы ЭВМ Ключевые термины и понятия

Лекция 2. Машина, на которой работает пользовательская программа.
Машина, на которой работает пользовательская программа Рассмотрение одного регистра Кодирование записи четырех команд Команда MOV Порядок размещения байт в памяти Команда сложения Интерпретация конструкции с командой add с незаданным размером Еще одна команда пересылки Резюме IA-32 Пример Память

Лекция 3. Устройство ассемблерной программы.
Повторение Объявление и инициализация переменной Построение дерева Умножение Обратный путь Устройство ассемблерной программы Основные секции Директивы секции data Пример заполнения секции data Резюме по командам арифметики INC MUL Пример IDIV, DIV 16-разрядный операнд CBW, CWD, CDQ

Лекция 4. Регистр EFLAGS.
Регистр EFLAGS Арифметические FLAGи ZF, SF, CF Переполнение при сложении двух беззнаковых чисел OF - знаковое переполнение Знаковое переполнение с графической точки зрения Изменение естественного порядка выполнения программы Команды переходов Коды Варианты сравнения Пример Другой способ Резюме Восстановление корректного варианта Код Просмотр содержимого исполняемого файла

Лекция 5. Вызов функции.
Вызов функции Аппаратный стек AI-32 Команда push Команда push dword Команда pop dword Команда call Куда call передаст управление? Команда ret Пример цепочки вызовов Стек фреймов Организация фрейма в IA-32/Linux Пример

Лекция 6. Система команд.
Повторение Группы команд Команда LEA Косвенная адресация Базово-индексная адресация Базово-индексная с масштабированием Базово-индексная с масштабированием и смещением Реализация стрелки Пирса Сдвиг влево Направление и интерпретация Сдвиг вправо Форматы FLAGи Команды вращения Фрагмент кода криптографической хеш-функции Обратная задача Сложение 64-разрядных чисел на 32-разрядных регистрах Умножение 64-разрядных чисел на 32-разрядных регистрах

Лекция 7. Как организована передача управления.
Как организована передача управления Сравнение знаковых чисел Сравнение: со знаком и без Пример Задача Реализация операторов с помощью известных команд Условная передача данных Конвейер - совмещение разных действий в один момент времени Опустошение конвейера при передаче управления Применение команды, чтобы передачи управления не происходило Циклы Оператор while Команда loop для поддержки работы с циклами

Лекция 8. Оператор управления switch.
Задача Оператор управления switch Реализация на ассемблере Duffs Device Пример Код Размещение меток в массиве Числовой круг Приведение сравниваемой величины к нулевой базе Начало оператора switch Окончание оператора switch Дерево поиска Обратная задача Указатели Массивы Имена для производных типов Обращение к отдельному элементу Пример

Лекция 9. Многомерные массивы.

Лекция 10. Структуры.