Первая лекция
Ассемблер - полностью машинно-зависимый язык программироавния.
Литература
- Intel 64 and IA-32 Architectures Software Developer’s Manual
Дополнительно:
- Assembler для DOS, Windows и UNIX
- Assembly Language Step-by-Step
- Assembler 2-е издание, В.И. Юров
Что нужно знать
- Архитектура процессора
- Среда разработки
- Как писать и чем обрабатывать
Архитектура
_____ _____
| CPU | <--шина--> | RAM |
----- -----
Шина:
- Адреса
- Данных
- Управления
Память:
- Бит
- Байт
- Big/Little endian
Бод - единица скорости передачи данных. Колебание сигнала можно воспринимать по-разному. (разные основания исчисления)
Memory: .. 0 1 2 3 ..
BigEnd:
LitEnd:
СISC / RISC
CISC (INTEL) | RISC (ARM) |
---|---|
Атомарность операций (равное процессорное время) | - |
Равная длина команд (2 или 4 байт) | Разная длина команд (от 1 до 17 байт) |
16 х 64-бит регистров | 16 х 64-бит регистров, но 3 из них служебные |
Все вычисления выполняются на регистрах | Данные из памяти могут быть аргументами для вычислений |
Принципы Фон Неймана
- Однородность памяти
- Двоичное кодирование
- Адресуемость памяти
- Программное управление
Гарвардская архитектура | Принстонская архитектура (Фон Неймана) |
---|---|
Обратная совместимость
Intel - сохраняет совместимость
ARM - ну такое
Процессоры
Что надо знать о процессорах
- Режимы работы
- Адресация
- Кэш
- Конфейер
- Стек и работа со стеком
- Регистры
- Флаги
- Типы данных
- Команды
Что надо знать про Ассемблер
-
Синтаксис
-
Макрокоманды
-
Модели памяти
-
Форматы ..
…
Режимы работы
-
Незащищенный режим (real mode)
CS 12340 IP 1234 +------- 13574
-
Защищенный режим (protected mode)
- Привилегии
-
V86
- эмуляция read mode внутри protected
-
big real mode
- баг, увеличение адресуемой памяти
-
64-битный
- для арифметки, размерность шины данных
-
Режим совместимости
-
SMM
- System Management Mode
-
Отладочный