Upload
clark-jennings
View
59
Download
5
Embed Size (px)
DESCRIPTION
Учебный курс. Архитектура ЭВМ и язык ассемблера Лекция 1 заместитель министра связи и массовых коммуникаций РФ, старший преподаватель Северов Дмитрий Станиславович. Ассемблер. • Литература. – Ирвин, Кип. Язык ассемблера для процессоров Intel,. 4е издание. ISBN 5-8459-0779-9. - PowerPoint PPT Presentation
Citation preview
Учебный курс
Архитектура ЭВМ и язык ассемблера
Лекция 1
заместитель министра связи и массовых коммуникаций РФ, старший преподаватель
Северов Дмитрий Станиславович
Ассемблер• Литература
– Ирвин, Кип. Язык ассемблера для процессоров Intel,4е издание. ISBN 5-8459-0779-9
– Юров В.И., Assembler: Специальный справочник.ISBN 5-469-00003-6
1. Основные понятия. Структура процессоров IA-32.2. Основы ассемблера. Пересылки, адресация,
основы целочисленной арифметики.3. Процедуры. Условные вычисления.4. Целочисленная арифметика. Профессиональное
программирование.5. 32-разрядные программы для Windows.
Интерфейс с языками высокого уровня.6. Основы работы с диском и иным оборудованием.7. Числа с плавающей точкой. Сопроцессор.
2
Алгоритм• Алгоритм (ISO 2382/1-84)
– Конечный набор предписаний, определяющий решениезадачи посредством конечного количества операций
• Свойства алгоритма– Дискретность информации и действий над ней– Понятность : доступность и однозначность предписаний– Конечность: получение результата за конечное число
шагов– Определённость: одинаковость результата для одинаковых
данных– Массовость: применимость к различным данным
• Процесс, порождаемый алгоритмом в ВМ –вычислительный процесс
3
Модели, языки, акторы• Модель – аналог
реального явления,представляющийзаконы поведениячастей и связей.
• Язык - знаковаясистема фиксации,переработки и передачиинформации.
• Актор – модельныйсобеседник, которомунаправлены фразымодельного языка.
РынкиПотребителиЗадачиАлгоритмыПрограммыБлоки аппаратурыЦифровые схемыАналоговые схемы
Нелинейные структуры
4
Модели, языки, акторы• Модель – аналог
реального явления,представляющийзаконы поведениячастей и связей.
• Язык - знаковаясистема фиксации,переработки и передачиинформации.
• Актор – модельныйсобеседник, которомунаправлены фразымодельного языка.
РынкиПотребителиЗадачиАлгоритмыПрограммыБлоки аппаратурыЦифровые схемыАналоговые схемы
Нелинейные структуры
Ассемблер применяется здесь
5
•••••••
… среди других языковАлгоритмы
Программы
Аппаратура
Цифровые схемы •Аналоговые схемы •
Языки спецификацийЯзыки программированияЯзык ассемблераСистемные вызовыМашинный кодМикрокомандыЦифровые сигналыЦифровые сигналыАналоговые сигналы
6
Назначение ассемблера
• Применяется для…– анализа
• сбоев• взаимодействия• чужого кода
– предельной разработки• по производительности
(библиотеки)• по потреблению
ресурсов (встраивание)• по степень доверия
(защита, надёжность)– абстрагирования от
аппаратуры (драйверы)
• Исключается для…– функционально
сложного ПО– сопровождаемого ПО– переносимого ПО
7
Двоичные операции• Одноразрядные:
– булево отрицание– булево сложение– булево умножение
• Многоразрядные, арифметические– сдвиги– арифметическое сложение– арифметическое умножение
• Произвольные:– табличное представление– конструирование– синтез, базис– СДНФ, СКНФ– минимизация и сложность
• «Нелогичность» булевой алгебры
8
Представление простейших данных
• Ограниченные двоичные поледовательности
– Беззнаковые целые числа
– Компактная форма – шестнадцатеричная
– Преобразования между системами
– Ограничения представления (байт, слово, …)
– Числа со знаком, дополнительный код
– Представимые числа
• Символы и строки : ASCII, Unicode, ASCIIZ
9
•
•
5.
Рабочее окружение программы
ЦП
АЛУ
УУ
Регистры
Основнаяпамять
УBBУBB
УBBУBB
Снаружи программы1. Загрузка кода2. Выделение ресурсов3. Нормирование работы и
реагирование на запросы4. Освобождение ресурсов
Среда взаимодействия
• Программа– Выполнение команд– Изменение состояния
• Другие программы
Внутри команды1. Выборка команды2. Декодирование3. Выборка операндов4. Выполнение операции
Запись результата
10
Нарушение потока управления
• Внешнее прерывание– Система прерывает программу непреодолимо и
непредсказуемо для последней– Аппаратное прерывание, исчерпание времени
• Исключительная ситуация– Операция невыполнима в данных условиях– Операция м.б. выполнима в других условиях
• Произвольное (программное) прерывание– Специальная команда обращения «вовне»– Не путать с передачей управления «внутри»!
11
•••••
Особенности iA-32• Программная модель
– Сегментированная, виртуализуемая память– Программный стек– Пользовательские регистры
общего назначения: EAX-EDX,EBP,ESP,ESI,EDIсегментные : CS,SS,ES,DS,FS,GSуказатель команды: EIPфлаги состояния: EFLAGSрасширения ST(0)-ST(7), MMX0-MMX7, XMM0-XMM7
– Системные регистры: управления, сист. адресов, отладки• Режимы работы
– RM: Real-address mode– PM: Protected mode
• VM: Virtual 8086 mode
- 220
байт- 2
32
(236
) байт- 2
20
байт каждому– SMM: System management mode
12
••••
Адресация IA-32• Физический адрес в режиме реальных адресов
– Механизм страничного преобразования– Линейный адрес
• Сегментный адрес• Эффективный адрес
– Смещение из команды– Содержимое базового регистра– Содержимое индексного регистр
• Физический адрес в защищённом режиме– Механизм страничного преобразования
Линейный адресБазовый адрес сегмента из дескриптора в таблице дескрипторовУказатель на дескриптор сегментаЭффективный адрес
13
Assembly Language for Intel-BasedComputers 4th Edition
http://www.kipirvine.com/asm/4th/index.html
• Средства отладки– Debugging Tools
• Часто задаваемые вопросы– Frequently Asked Questions
• Исправления примеров и библиотек– Example Programs and Library Update Patch
• Решения заданий с нечётными номерами– Solutions to odd-numbered prog exercises
• Справочный файл по «учебным» библиотекам– Help file for the book's link library
14
www.Intel.com/products/processor/manuals/• Расширение: Контроллер прерываний
– x2APIC Specification
• Тонкости реализации памятиTLBs, Paging-Structure Caches, and Their
invalidation• Собственно архитектура
– Volume 1: Basic Architecture– Volumes 2A,2B: instruction Set Reference– Volumes 3A,3B: System Programming Guide
• Рекомендации по оптимизации– Optimization Reference Manual
15
Процесс создания программы• Редактирвание
⇓ Ваш исходный текст• Трансляция
⇓ Объектный код• Компоновка
⇓ Загрузочный код• Загрузка
⇓ Исполняемый код• Выполнение,отладка
⇓ Результат
16
Процесс создания программы• Редактирвание
⇓ Ваш исходный текст• Трансляция
⇓ Объектный код• Компоновка
⇓ Загрузочный код• Загрузка
⇓ Исполняемый код• Выполнение,отладка
⇓ Результат
⇐Изменения текста
⇐Текстовые библиотеки
⇐Статический код
⇐Решения ОС
⇐Внешние события
⇐Внешние данные и код 17
Процесс создания программы• Редактирвание
⇓ Ваш исходный текст• Трансляция
⇓ Объектный код• Компоновка
⇓ Загрузочный код• Загрузка
⇓ Исполняемый код
Ввод предписаний
⇐Изменения текста Предписания трансляции
⇐Текстовые библиотеки Предписания компоновки
⇐Статический код Предписания загрузки
⇐Решения ОС
• Выполнение,отладка Предписания исполнения
⇓ Результат ⇐Внешние события
⇐Внешние данные и код 18
Предписания ассемблеру (1)• Команды
– изображение в машинного кода «один-в-один»
• Псевдоданные– Предопределённые имена
• Дата, время, окружение, файл• Сегменты, разметка кода, «неинициализация»
– Операторы трансляции• Арифметические, побитовые, сдвиги, отношения• Макрооператоры, работа с записями и типами• Сегментная информация, определение данных
– Операторы исполнения (для директив, см. далее)• «Логические» выражения, значения флагов
19
Предписания ассемблеру (2)• Псевдокоманды
– Директивы условного выполнения программ– Директивы трансляции
1. Работа со счётчиком адреса2. Условная трансляция, и генерация ошибок3. Распределение данных и установления равенства4. Управления листингом
5. Работа с макрокомандами и блоками повторения6. Работа с процедурами7. Управление областью видимости8. Управление сегментацией в т.ч. упрощенное9. Работа строками и сложными типами10.Указание типа процессора11.Комментарии, эхо, вставки, библиотеки, контекст
20
2.3.4.
«Целочисленные» константы и выражения
• «Целочисленная» константа[{+|-}] цифры [основание]
– Основание[{h|q|o|d|b|r|t|y}]• «Целочисленное» выражение
– Результат всегда 32 бита– Операторы над значениями (по приоритетам)
1. Скобки(Не) изменение знакаПроизведение, частное, остатокСумма, разность
21
«Вещественные» и текстовые константы
• «Десятичные вещественные» константы[{+|-}]цифры.[цифры][E[{+|-}]цифры]
• Закодированные «вещественные» константы+1.0 3А800000r• Символьные и строковые константы”A” ’A’”Буква ’A’- первая в алфавите”’Он сказал: ”Поехали!” и взмахнул рукой.’
22
––––
Идентификаторы изарезервированные слова
• Идентификаторы– Длина < 248 символов– Регистр не различается
– Первой – буква (A…Z, a…z, _, @, $)
• Зарезервированные словаОбозначения команд (мнемокоды)Обозначения директивОбозначения операторовОбозначения регистров
23
Команды
• Структура[метка] мнемокод [операнды]
• Метка идентификатор:– символическое обозначение адреса команды
• Мнемокод– Символическое обозначение варианта машинной команды
• Операнды– Константное выражение, в т.ч. (символическая) константа
– Название регистра
– Имя переменной
24