• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Язык ассемблера

2019/2020
Учебный год
RUS
Обучение ведется на русском языке
4
Кредиты
Статус:
Курс обязательный
Когда читается:
3-й курс, 3, 4 модуль

Преподаватель

Программа дисциплины

Аннотация

Дисциплина «Язык ассемблера» нужна для формирования базовых компетенций, связанных с разработкой программного обеспечения при решении профессиональных задач. Результаты освоения этой дисциплины могут быть использованы при написании выпускной квалификационной работы и прохождении производственной и преддипломной практик.
Цель освоения дисциплины

Цель освоения дисциплины

  • Изучение принципов организации ЭВМ
  • Изучение системы команд центрального процессора ЭВМ
  • Изучение основ построения алгоритмов и выработки умений эффективных реализаций различных алгоритмов
  • Выработке навыков и умений программирования на языке С и Ассемблера
  • Выработке навыков и умений разработки тестов для отладки созданных программ
Планируемые результаты обучения

Планируемые результаты обучения

  • Знать внутреннее представление и кодирование информации в ЭВМ, архитектуру ЭВМ на базе процессоров семейства 80х86
  • Знать систему команд центрального процессора
  • Знать иерархию памяти. Знать иерархию памяти.
  • Иметь навык тестирования программного обеспечения и анализа полученных результатов, использования отладчиков
  • Уметь программировать на языке Ассемблера
  • Уметь осуществлять вставки на языке Ассемблера в программы, написанные на языке Си
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Представление и кодирование информации в ЭВМ
    Структура ячейки памяти: биты, байты, слова. Системы счисления: двоичная, 16-ричная. Целые числа: знаковые и беззнаковые. Диапазоны целых. Сложение и вычитание целых. Примеры программ на языке Си для изучения эффекта переполнения. Кодирование символов. Код ASCII. Расширения кода ASCII: кодировка IBM, альтернативная кодировка ГОСТа, UNICODE
  • Основы архитектуры процессора семейства 80х86
    Общие сведения о семействе процессоров 80x86. Общая шина. Память: ОЗУ и ПЗУ. Кэш-память. Адресное пространство. Сегмент и смещение, параграф. Нормализованный адрес. Команды отладчиков для просмотра ячеек памяти. Сегментные регистры. Структура центрального процессора: исполнительный блок и шинный интерфейс. Регистры центрального процессора: HL-регистры, PI-регистры, счетчик команд, регистр флагов. Назначение битов регистра флагов
  • Система команд центрального процессора: пересылки данных, арифметические, команды сравнения, команды переходов. Кодирование команд.
    Структура описания команд. Команды пересылки. Арифметические команды: сложение, вычитание. Длинные целые. Операнды раз-личной длины. Арифметические команды: умножение, деление. Десятичная арифметика. Команды сравнения. Условные переходы. Команды безусловных переходов. Кодирование команд: однооперандные команды, непосредственный операнд, двухоперандные команды
  • Методы адресации и организация циклов
    Методы адресации: регистровый и непосредственный. Индексная адресация. Команды организации циклов. Косвенная адресация. Команды косвенного перехода. Префикс замены сегмента. Команды загрузки исполнительного адреса
  • Стек, подпрограммы, программные прерывания
    Стек. Команды работы со стеком. Использование стека для организации вложенных циклов. Подпрограммы. Передача параметров: через стек и через регистры. Возвращение результата через флаг CF. Команды изменения флага CF. Вложенные подпрограммы. Использование отладчиков для отладки программ. Прерывания: их классификация. Команды запрета и разрешения внешних прерываний. Программные прерывания. Векторы прерываний. Команды прерываний. Пример программы обработки прерывания.
  • Средства языка Ассемблера
    Язык Ассемблера. Определение данных. Пример программы на языке Ассемблера. Этапы создания программы: ассемблирование, компоновка, выполнение. Подпрограммы. Макросы. Вложенные макросы. Условное ассемблирование. Локальные метки. Блоки повторений
  • Битовые операции
    Битовые команды: булевские, линейные и циклические сдвиги. Пример применения битовых команд
  • Связь программ на языке С и Ассемблера
    Стыковка модулей, написанных на языках Си и Ассемблера. Передача параметров в Си. Примеры программ
  • Развитие процессоров семейства 80х86
    32-разрядная архитектура. Регистры. Новые методы адресации. Пример использования возможностей 32-разрядной платформы. 64-разрядная архитектура. Регистры.
Элементы контроля

Элементы контроля

  • неблокирующий экзамен
    Экзамен проводится в устной форме (опрос по материалам курса). Экзамен проводится на платформе jitsi (https://www.meet.miem.hse.ru). К экзамену необходимо подключиться согласно расписанию экзамена. Компьютер студента должен удовлетворять требованиям: наличие рабочей камеры и микрофона, поддержка jitsi. Для участия в экзамене студент обязан: поставить на аватар свою фотографию, явиться на экзамен согласно точному расписанию, при ответе включить камеру и микрофон. Во время экзамена студентам запрещено: выключать камеру, пользоваться конспектами и подсказками. Кратковременным нарушением связи во время экзамена считается нарушение связи менее минуты. Долговременным нарушением связи во время экзамена считается нарушение минута и более. При долговременном нарушении связи студент не может продолжить участие в экзамене. Процедура пересдачи подразумевает использование усложненных заданий
  • неблокирующий текущий контроль
  • неблокирующий Проверка остаточных знаний
Промежуточная аттестация

Промежуточная аттестация

  • Промежуточная аттестация (4 модуль)
    0.5 * текущий контроль + 0.5 * экзамен
Список литературы

Список литературы

Рекомендуемая основная литература

  • Аблязов Р.З. - Программирование на ассемблере на платформе x86-64 - Издательство "ДМК Пресс" - 2011 - 304с. - ISBN: 978-5-94074-676-8 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/1273
  • Зубков С.В. - Assembler. Для DOS, Windows и Unix - Издательство "ДМК Пресс" - 2008 - 640с. - ISBN: 5-94074-259-9 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/1243
  • Шарден Б., Массарон Л., Боскетти А. - Крупномасштабное машинное обучение вместе с Python - Издательство "ДМК Пресс" - 2018 - 358с. - ISBN: 978-5-97060-506-6 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/105836

Рекомендуемая дополнительная литература

  • Северенс Ч. - Введение в программирование на Python - Национальный Открытый Университет "ИНТУИТ" - 2016 - 231с. - ISBN: - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100703