Главная » Все файлы » Просмотр файлов из архивов » Документы » Конспект лекций по курсу Ассемблер (Алещенко)

Конспект лекций по курсу Ассемблер (Алещенко) (Раздаточный материал)

2016-04-08СтудИзба

Описание файла

Файл "Конспект лекций по курсу Ассемблер (Алещенко)" внутри архива находится в папке "Ассемблер". Документ из архива "Раздаточный материал", который расположен в категории "". Всё это находится в предмете "ассемблер" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "ассемблер" в общих файлах.

Онлайн просмотр документа "Конспект лекций по курсу Ассемблер (Алещенко)"

Текст из документа "Конспект лекций по курсу Ассемблер (Алещенко)"

Министерство Образования и Науки РФ

Федеральное Агентство по Образованию

Государственное Образовательное Учреждение

высшего профессионального образования

Московский Авиационный Институт

Государственный Технический Университет

”МАИ”

кафедра 304.



Конспект лекций по курсу

ЯЗЫК АССЕМБЛЕРА IBM PC

Москва, 2006 год









Место языков ассемблера среди языков программирования



Языки программирования – это языки, воспринимаемые вводными устройствами ЦВМ. Общая классификация языков программирования (ЯП) приведена на схеме:



Я зыки программирования



Алгоритмические языки Машинно-зависимые

(высокого уровня) языки



Универсальные Проблемно-ориен- ЯСК Машинные

тированные Языки ассемблера

Алгоритмический язык – это язык, позволяющий записать алгоритм в виде последовательности операторов, т.е. довольно сложных конструкций, что существенно облегчает и ускоряет процесс программирования и отладки программ. Машинный язык содержит подробные конструкции (команды) в двоично-кодированном виде. Язык Ассемблера в основном отличается от машинного языка использованием идентификаторов и мнемонических имён и дополнительными возможностями, позволяющими упростить процесс программирования. Язык Ассемблера требует хорошего знания структурных и архитектурных особенностей процессора и ЭВМ в целом. Ассемблер – это программа, входящая в операционную систему (ОС) и предназначенная для формирования машинных команд путём перевода со входного языка, называемого языком Ассемблера.

Рассмотрим язык ассемблера на примере IBM-совместимых персональных ЭВМ (ПЭВМ). К этому классу относятся

  • ПЭВМ, построенные на базе микропроцессоров (МП) фирмы Intel (семейства 8086, 80x86 - i486, Pentium, Celeron, Atlon и т.п.).

  • МПК 1810 (ЕС 1840 и т.п.)

  • В настоящее время широко используются микропроцессоры таких производителей как DEC (Digital Equipment Corporation), HP (Hewlett Packard) и др. Эти микропроцессоры используют систему микрокоманд и ЯА существенно отличающуюся от фирмы Intel, но при программировании используются те же принципы.

Регистровая структура МП Intel 8086:

ПЭВМ семейства 80x86 можно представить как совокупность следующих программно-логических элементов МП:

а) в МП:

  • Рабочие регистры;

  • Счётчик команд;

  • Регистры флагов;

  • Стек;

б) связанные с МП:

  • Память;

  • Система команд;

  • Система ввода\вывода;

  • Система прерывания.



Регистровая структура МП 80x86 приведена на схеме, она включает в себя 4 группы 16-разрядных регистров, которые обслуживают функционирование операционного устройства (ОУ) и шинного интерфейса (ШИ).

О перационное устройство (ОУ) Шинный интерфейс (ШИ)



AH AL

Р егистры BH BL

д анных CH CL Регистры сегментов

DH DL CS

SP DS

Р егистры- BP SS

у казатели SI ES

DI

Управление

шиной I P

очередь

команд

АЛУ УУ

PSW









Рассмотрим подробнее:

  1. Регистры общего назначения (регистры данных)

Эти регистры используются для хранения операндов, промежуточных результатов и других видов данных и адресов. Каждый из указанных регистров имеет еще и дополнительное специальное назначение для определенных команд языка ассемблера.

AX

Аккумулятор

AH, AL

BX

Базовый регистр

BH, BL

CX

Счетчик

CH, CL

DX

Регистр данных

DH, DL

Допускается обращение к частям этих регистров, т.е. старшему байту (вторая буква Н) и младшему байту (вторая буква L).

  1. Регистровые указатели

Группа содержит непосредственно указатели

SP – указатель стека,

BP – указатель базы

и индексные регистры

SI – индекс источника,

DI – индекс приемника.

Регистры-указатели используются для работы со специальной структурой памяти – стеком; индексные регистры используются при выборке операндов из памяти.

  1. Регистры сегментов (сегментные регистры)

Сегментация памяти позволяет укоротить адресные коды, кроме того, каждый сегмент имеет свое предназначение, что повышает надежность программ.

CS (Code Segment) – регистр сегмента команд, определяет начало сегмента, содержащего адрес текущей выполняемой команды;

DS (Data Segment) – регистр сегмента данных, определяет начало сегмента, содержащего константы и данные;

SS (Stack Segment) – регистр сегмента стека, указывает на начало сегмента стека;

ЕS (Extension Data Segment) – регистр дополнительного сегмента данных, определяет начало сегмента, который обычно используется для запоминания промежуточных данных или как расширение сегмента данных. В более поздних моделях МП есть дополнительные сегменты:

FS, GS – дополнительные сегменты данных

LDTR – регистр локальной таблицы дескрипторов.

  1. Указатель команд и регистр флагов

IP – указатель команд, выполняет роль счетчика команд; его содержимое – это смещение относительно начального адреса сегмента команд (CS).

Во время выполнения программы содержимое регистра IP изменяется и всегда хранит адрес следующей выбираемой для выполнения команды.

Flags (PSW) – регистр флагов, содержит информацию о текущем состоянии МП. Рассмотрим структуру регистра флагов подробнее :

Flags

OF

DF

IF

TF

SF

ZF

AF

PF

CF

15

11

10

9

8

7

6

4

2

0





Флаги разделяют на:

  • условные (флаги условий), отражающие результаты выполнения предыдущей команды в АЛУ и используемые в командах условных переходов;

  • управляющие (флаги управления), от которых зависит выполнение специальных функций МП.

  1. Условные флаги в алфавитном порядке.

AF (Auxiliary Carry flag) – флаг вспомогательного переноса, предназначенный для обработки чисел в BCD-формате, используется при выполнении арифметических операций над числами длиной 1 байт для индикации переноса из младшей тетрады в старшую (или займа из старшей тетрады). Здесь BCD (Binary Coded Decimal) – двоично-десятичное представление чисел (каждая десятичная цифра кодируется двоичной тетрадой)

CF (Carry flag) – флаг переноса, предназначен для индикации переноса из старшего байта, используется в операндах, разрядность которых больше 16 бит.

OF (Overflow flag) – флаг переполнения, предназначен для индикации переполнения результатов при выполнении арифметических операций. При сложении он устанавливается в 1, если есть перенос в старший бит, но нет переноса из старшего бита.

PF (Parity flag) – флаг четности, используется как контрольный бит, устанавливается в 1, если младший байт содержит четное число единиц.

SF (Sign flag) – флаг знака, равен 1 для отрицательного результата.

ZF (Zero flag) – признак нулевого результата.

Управляющие флаги устанавливаются программным путем и используются для изменения состояния МП.

DF (Direction flag) – флаг направления, применяется в командах обработки строк. При DF=1 обработка осуществляется от наибольшего адреса к меньшему, а при DF=0 – от начала к концу.



Установка флага осуществляется следующими командами ассемблера:

Команда

Устанавливает значение DF

STD

1

CLD

0



IF (Interrupt-Enable flag) – разрешение прерывания, используется для разрешения или запрета обработки внешнего маскируемого прерывания. Устанавливается командами ассемблера

Команда

Значение IF

Результат установки

STI

1

Обработка прерывания разрешена

CLI

0

Обработка прерывания запрещена



TF (Trap flag) – трассировка, используется для осуществления покомандного (пошагового) выполнения программы. При TF=1 МП автоматически вырабатывает внутренние прерывания после каждой команды, что удобно для отладочного режима выполнения программы. Изменить состояние флага TF довольно сложно.



Две части МП:

ОУ – операционное устройство, выполняет команды; содержит АЛУ, УУ и 10 регистров. Эти устройства обеспечивают выполнение команд, арифметических вычислений и логических операций.

ШИ – шинный интерфейс, подготавливает команду и данные для выполнения; содержит 3 элемента:

  1. Блок управления шиной

  2. Очередь команд

  3. Сегментные регистры



Структура команд

Операционная часть

Адресная часть

В командах ЯА:

Мнемоника

Адресная часть

Машинные команды МП занимают от 1 до 6 байтов, причём операционная часть занимает 1 или 2 первых байтов команды, остальное адресная часть.

Операнды могут быть указаны:

  • В самой команде(непосредственная адресация)

  • В одном из регистров, тогда в команде указывается этот регистр (регистровая адресация)

  • В оперативной памяти (ОП) по адресу, который тем или иным образом описан в команде (прямая, базовая или индексная адресация)

  • Некоторые команды требуют, чтобы один из операндов находился в определённом регистре (например в AX), тогда он не указывается в команде( подразумеваемая адресация)

Результат выполнения команды обычно помещается на место первого операнда. Форматы команд разнообразны (в основном двухадресные).

В общем виде запишем : op1 := op1 * op2, где * - какая-то команда, заданная МНК(мнемоникой); op1 – регистр или ячейка памяти, 1 байт или одно слово (2 байта); op2 – непосредственный операнд - регистр или ячейка памяти, 1 байт или одно слово (2 байта).

Система команд МП Intel 80x86

Арифметические команды

  1. Команды сложения и вычитания

Операции сложения и вычитания одинаково для знаковых и беззнаковых целых. Используются две формы операндов: байт или слово, причем операнды должны быть одинаковой длины. Операнды могут храниться в регистре или в ОП, но второй операнд может быть непосредственным.

Перечислим команды, относящиеся к группе команд сложения и вычитания:

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5136
Авторов
на СтудИзбе
443
Средний доход
с одного платного файла
Обучение Подробнее