Учебный курс

24
Учебный курс Архитектура ЭВМ и язык ассемблера Лекция 1 заместитель министра связи и массовых коммуникаций РФ, старший преподаватель Северов Дмитрий Станиславович

Upload: clark-jennings

Post on 03-Jan-2016

62 views

Category:

Documents


5 download

DESCRIPTION

Учебный курс. Архитектура ЭВМ и язык ассемблера Лекция 1 заместитель министра связи и массовых коммуникаций РФ, старший преподаватель Северов Дмитрий Станиславович. Ассемблер. • Литература. – Ирвин, Кип. Язык ассемблера для процессоров Intel,. 4е издание. ISBN 5-8459-0779-9. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Учебный курс

Учебный курс

Архитектура ЭВМ и язык ассемблера

Лекция 1

заместитель министра связи и массовых коммуникаций РФ, старший преподаватель

Северов Дмитрий Станиславович

Page 2: Учебный курс

Ассемблер• Литература

– Ирвин, Кип. Язык ассемблера для процессоров 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

Page 3: Учебный курс

Алгоритм• Алгоритм (ISO 2382/1-84)

– Конечный набор предписаний, определяющий решениезадачи посредством конечного количества операций

• Свойства алгоритма– Дискретность информации и действий над ней– Понятность : доступность и однозначность предписаний– Конечность: получение результата за конечное число

шагов– Определённость: одинаковость результата для одинаковых

данных– Массовость: применимость к различным данным

• Процесс, порождаемый алгоритмом в ВМ –вычислительный процесс

3

Page 4: Учебный курс

Модели, языки, акторы• Модель – аналог

реального явления,представляющийзаконы поведениячастей и связей.

• Язык - знаковаясистема фиксации,переработки и передачиинформации.

• Актор – модельныйсобеседник, которомунаправлены фразымодельного языка.

РынкиПотребителиЗадачиАлгоритмыПрограммыБлоки аппаратурыЦифровые схемыАналоговые схемы

Нелинейные структуры

4

Page 5: Учебный курс

Модели, языки, акторы• Модель – аналог

реального явления,представляющийзаконы поведениячастей и связей.

• Язык - знаковаясистема фиксации,переработки и передачиинформации.

• Актор – модельныйсобеседник, которомунаправлены фразымодельного языка.

РынкиПотребителиЗадачиАлгоритмыПрограммыБлоки аппаратурыЦифровые схемыАналоговые схемы

Нелинейные структуры

Ассемблер применяется здесь

5

Page 6: Учебный курс

•••••••

… среди других языковАлгоритмы

Программы

Аппаратура

Цифровые схемы •Аналоговые схемы •

Языки спецификацийЯзыки программированияЯзык ассемблераСистемные вызовыМашинный кодМикрокомандыЦифровые сигналыЦифровые сигналыАналоговые сигналы

6

Page 7: Учебный курс

Назначение ассемблера

• Применяется для…– анализа

• сбоев• взаимодействия• чужого кода

– предельной разработки• по производительности

(библиотеки)• по потреблению

ресурсов (встраивание)• по степень доверия

(защита, надёжность)– абстрагирования от

аппаратуры (драйверы)

• Исключается для…– функционально

сложного ПО– сопровождаемого ПО– переносимого ПО

7

Page 8: Учебный курс

Двоичные операции• Одноразрядные:

– булево отрицание– булево сложение– булево умножение

• Многоразрядные, арифметические– сдвиги– арифметическое сложение– арифметическое умножение

• Произвольные:– табличное представление– конструирование– синтез, базис– СДНФ, СКНФ– минимизация и сложность

• «Нелогичность» булевой алгебры

8

Page 9: Учебный курс

Представление простейших данных

• Ограниченные двоичные поледовательности

– Беззнаковые целые числа

– Компактная форма – шестнадцатеричная

– Преобразования между системами

– Ограничения представления (байт, слово, …)

– Числа со знаком, дополнительный код

– Представимые числа

• Символы и строки : ASCII, Unicode, ASCIIZ

9

Page 10: Учебный курс

5.

Рабочее окружение программы

ЦП

АЛУ

УУ

Регистры

Основнаяпамять

УBBУBB

УBBУBB

Снаружи программы1. Загрузка кода2. Выделение ресурсов3. Нормирование работы и

реагирование на запросы4. Освобождение ресурсов

Среда взаимодействия

• Программа– Выполнение команд– Изменение состояния

• Другие программы

Внутри команды1. Выборка команды2. Декодирование3. Выборка операндов4. Выполнение операции

Запись результата

10

Page 11: Учебный курс

Нарушение потока управления

• Внешнее прерывание– Система прерывает программу непреодолимо и

непредсказуемо для последней– Аппаратное прерывание, исчерпание времени

• Исключительная ситуация– Операция невыполнима в данных условиях– Операция м.б. выполнима в других условиях

• Произвольное (программное) прерывание– Специальная команда обращения «вовне»– Не путать с передачей управления «внутри»!

11

Page 12: Учебный курс

•••••

Особенности 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

Page 13: Учебный курс

••••

Адресация IA-32• Физический адрес в режиме реальных адресов

– Механизм страничного преобразования– Линейный адрес

• Сегментный адрес• Эффективный адрес

– Смещение из команды– Содержимое базового регистра– Содержимое индексного регистр

• Физический адрес в защищённом режиме– Механизм страничного преобразования

Линейный адресБазовый адрес сегмента из дескриптора в таблице дескрипторовУказатель на дескриптор сегментаЭффективный адрес

13

Page 14: Учебный курс

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

Page 15: Учебный курс

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

Page 16: Учебный курс

Процесс создания программы• Редактирвание

⇓ Ваш исходный текст• Трансляция

⇓ Объектный код• Компоновка

⇓ Загрузочный код• Загрузка

⇓ Исполняемый код• Выполнение,отладка

⇓ Результат

16

Page 17: Учебный курс

Процесс создания программы• Редактирвание

⇓ Ваш исходный текст• Трансляция

⇓ Объектный код• Компоновка

⇓ Загрузочный код• Загрузка

⇓ Исполняемый код• Выполнение,отладка

⇓ Результат

⇐Изменения текста

⇐Текстовые библиотеки

⇐Статический код

⇐Решения ОС

⇐Внешние события

⇐Внешние данные и код 17

Page 18: Учебный курс

Процесс создания программы• Редактирвание

⇓ Ваш исходный текст• Трансляция

⇓ Объектный код• Компоновка

⇓ Загрузочный код• Загрузка

⇓ Исполняемый код

Ввод предписаний

⇐Изменения текста Предписания трансляции

⇐Текстовые библиотеки Предписания компоновки

⇐Статический код Предписания загрузки

⇐Решения ОС

• Выполнение,отладка Предписания исполнения

⇓ Результат ⇐Внешние события

⇐Внешние данные и код 18

Page 19: Учебный курс

Предписания ассемблеру (1)• Команды

– изображение в машинного кода «один-в-один»

• Псевдоданные– Предопределённые имена

• Дата, время, окружение, файл• Сегменты, разметка кода, «неинициализация»

– Операторы трансляции• Арифметические, побитовые, сдвиги, отношения• Макрооператоры, работа с записями и типами• Сегментная информация, определение данных

– Операторы исполнения (для директив, см. далее)• «Логические» выражения, значения флагов

19

Page 20: Учебный курс

Предписания ассемблеру (2)• Псевдокоманды

– Директивы условного выполнения программ– Директивы трансляции

1. Работа со счётчиком адреса2. Условная трансляция, и генерация ошибок3. Распределение данных и установления равенства4. Управления листингом

5. Работа с макрокомандами и блоками повторения6. Работа с процедурами7. Управление областью видимости8. Управление сегментацией в т.ч. упрощенное9. Работа строками и сложными типами10.Указание типа процессора11.Комментарии, эхо, вставки, библиотеки, контекст

20

Page 21: Учебный курс

2.3.4.

«Целочисленные» константы и выражения

• «Целочисленная» константа[{+|-}] цифры [основание]

– Основание[{h|q|o|d|b|r|t|y}]• «Целочисленное» выражение

– Результат всегда 32 бита– Операторы над значениями (по приоритетам)

1. Скобки(Не) изменение знакаПроизведение, частное, остатокСумма, разность

21

Page 22: Учебный курс

«Вещественные» и текстовые константы

• «Десятичные вещественные» константы[{+|-}]цифры.[цифры][E[{+|-}]цифры]

• Закодированные «вещественные» константы+1.0 3А800000r• Символьные и строковые константы”A” ’A’”Буква ’A’- первая в алфавите”’Он сказал: ”Поехали!” и взмахнул рукой.’

22

Page 23: Учебный курс

––––

Идентификаторы изарезервированные слова

• Идентификаторы– Длина < 248 символов– Регистр не различается

– Первой – буква (A…Z, a…z, _, @, $)

• Зарезервированные словаОбозначения команд (мнемокоды)Обозначения директивОбозначения операторовОбозначения регистров

23

Page 24: Учебный курс

Команды

• Структура[метка] мнемокод [операнды]

• Метка идентификатор:– символическое обозначение адреса команды

• Мнемокод– Символическое обозначение варианта машинной команды

• Операнды– Константное выражение, в т.ч. (символическая) константа

– Название регистра

– Имя переменной

24