1 / 24

Учебный курс

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

Download Presentation

Учебный курс

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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. Числа с плавающей точкой. Сопроцессор.

  3. Алгоритм • Алгоритм (ISO 2382/1-84) – Конечный набор предписаний, определяющий решение задачи посредством конечного количества операций • Свойства алгоритма – Дискретность информации и действий над ней – Понятность : доступность и однозначность предписаний – Конечность: получение результата за конечное число шагов – Определённость: одинаковость результата для одинаковых данных – Массовость: применимость к различным данным • Процесс, порождаемый алгоритмом в ВМ – вычислительный процесс

  4. Модели, языки, акторы Рынки Потребители Задачи Алгоритмы Программы Блоки аппаратуры Цифровые схемы Аналоговые схемы Нелинейные структуры • Модель – аналог реального явления, представляющий законы поведения частей и связей. • Язык - знаковая система фиксации, переработки и передачи информации. • Актор – модельный собеседник, которому направлены фразы модельного языка.

  5. Модели, языки, акторы Рынки Потребители Задачи Алгоритмы Программы Блоки аппаратуры Цифровые схемы Аналоговые схемы Нелинейные структуры • Модель – аналог реального явления, представляющий законы поведения частей и связей. • Язык - знаковая система фиксации, переработки и передачи информации. • Актор – модельный собеседник, которому направлены фразы модельного языка. Ассемблер применяется здесь

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

  7. Назначение ассемблера • Исключается для… – функционально сложного ПО – сопровождаемого ПО – переносимого ПО • Применяется для… – анализа • сбоев • взаимодействия • чужого кода – предельной разработки • по производительности (библиотеки) • по потреблению ресурсов (встраивание) • по степень доверия (защита, надёжность) – абстрагирования от аппаратуры (драйверы)

  8. Двоичные операции • Одноразрядные: – булево отрицание – булево сложение – булево умножение • Многоразрядные, арифметические – сдвиги – арифметическое сложение – арифметическое умножение • Произвольные: – табличное представление – конструирование – синтез, базис – СДНФ, СКНФ – минимизация и сложность • «Нелогичность» булевой алгебры

  9. Представление простейших данных • Ограниченные двоичные поледовательности – Беззнаковые целые числа – Компактная форма – шестнадцатеричная – Преобразования между системами – Ограничения представления (байт, слово, …) – Числа со знаком, дополнительный код – Представимые числа • Символы и строки : ASCII, Unicode, ASCIIZ

  10. Рабочее окружение программы Снаружи программы 1. Загрузка кода 2. Выделение ресурсов 3. Нормирование работы и реагирование на запросы • ЦП АЛУ УУ Регистры УBB УBB УBB УBB Основная память 4. Освобождение ресурсов Среда взаимодействия Внутри команды 1. Выборка команды 2. Декодирование 3. Выборка операндов 4. Выполнение операции Запись результата • • Программа – Выполнение команд – Изменение состояния • Другие программы 5.

  11. Нарушение потока управления • Внешнее прерывание – Система прерывает программу непреодолимо и непредсказуемо для последней – Аппаратное прерывание, исчерпание времени • Исключительная ситуация – Операция невыполнима в данных условиях – Операция м.б. выполнима в других условиях • Произвольное (программное) прерывание – Специальная команда обращения «вовне» – Не путать с передачей управления «внутри»!

  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байт - 232(236) байт - 220 байт каждому – SMM: System management mode

  13. Адресация IA-32 • Физический адрес в режиме реальных адресов – Механизм страничного преобразования – Линейный адрес • Сегментный адрес • Эффективный адрес – Смещение из команды – Содержимое базового регистра – Содержимое индексного регистр • Физический адрес в защищённом режиме – Механизм страничного преобразования • Линейный адрес Базовый адрес сегмента из дескриптора в таблице дескрипторов Указатель на дескриптор сегмента Эффективный адрес • • •

  14. Assembly Language for Intel-Based Computers 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

  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

  16. Процесс создания программы • Редактирвание ⇓ Ваш исходный текст • Трансляция ⇓ Объектный код • Компоновка ⇓ Загрузочный код • Загрузка ⇓ Исполняемый код • Выполнение,отладка ⇓ Результат

  17. Процесс создания программы • Редактирвание ⇐Изменения текста ⇐Текстовые библиотеки ⇐Статический код ⇐Решения ОС ⇐Внешние события ⇐Внешние данные и код ⇓ Ваш исходный текст • Трансляция ⇓ Объектный код • Компоновка ⇓ Загрузочный код • Загрузка ⇓ Исполняемый код • Выполнение,отладка ⇓ Результат

  18. Процесс создания программы Ввод предписаний ⇐Изменения текста Предписания трансляции ⇐Текстовые библиотеки Предписания компоновки ⇐Статический код Предписания загрузки ⇐Решения ОС • Редактирвание ⇓ Ваш исходный текст • Трансляция ⇓ Объектный код • Компоновка ⇓ Загрузочный код • Загрузка ⇓ Исполняемый код • Выполнение,отладка Предписания исполнения ⇐Внешние события ⇐Внешние данные и код ⇓ Результат

  19. Предписания ассемблеру (1) • Команды – изображение в машинного кода «один-в-один» • Псевдоданные – Предопределённые имена • Дата, время, окружение, файл • Сегменты, разметка кода, «неинициализация» – Операторы трансляции • Арифметические, побитовые, сдвиги, отношения • Макрооператоры, работа с записями и типами • Сегментная информация, определение данных – Операторы исполнения (для директив, см. далее) • «Логические» выражения, значения флагов

  20. Предписания ассемблеру (2) • Псевдокоманды – Директивы условного выполнения программ – Директивы трансляции 1. Работа со счётчиком адреса 2. Условная трансляция, и генерация ошибок 3. Распределение данных и установления равенства 4. Управления листингом 5. Работа с макрокомандами и блоками повторения 6. Работа с процедурами 7. Управление областью видимости 8. Управление сегментацией в т.ч. упрощенное 9. Работа строками и сложными типами 10.Указание типа процессора 11.Комментарии, эхо, вставки, библиотеки, контекст

  21. «Целочисленные» константы и выражения • «Целочисленная» константа [{+|-}] цифры [основание] – Основание [{h|q|o|d|b|r|t|y}] • «Целочисленное» выражение – Результат всегда 32 бита – Операторы над значениями (по приоритетам) 1. Скобки (Не) изменение знака Произведение, частное, остаток Сумма, разность 2. 3. 4.

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

  23. Идентификаторы и зарезервированные слова • Идентификаторы – Длина < 248 символов – Регистр не различается – Первой – буква (A…Z, a…z, _, @, $) • Зарезервированные слова Обозначения команд (мнемокоды) Обозначения директив Обозначения операторов Обозначения регистров – – – –

  24. Команды • Структура [метка] мнемокод [операнды] • Метка идентификатор: – символическое обозначение адреса команды • Мнемокод – Символическое обозначение варианта машинной команды • Операнды – Константное выражение, в т.ч. (символическая) константа – Название регистра – Имя переменной

More Related