Menu English Ukrainian Russian Home

Бесплатная техническая библиотека для любителей и профессионалов Бесплатная техническая библиотека


Информатика и информационные технологии. Регистры (конспект лекций)

Конспекты лекций, шпаргалки

Справочник / Конспекты лекций, шпаргалки

Комментарии к статье Комментарии к статье

Оглавление (развернуть)

ЛЕКЦИЯ № 14. Ассемблер

1. Об ассемблере

Когда-то ассемблер был языком, без знания которого нельзя было заставить компьютер сделать что-либо полезное. Постепенно ситуация менялась. Появлялись более удобные средства общения с компьютером. Но в отличие от других языков ассемблер не умирал, более того, он не мог сделать этого в принципе. Почему? В поисках ответа попытаемся понять, что такое язык ассемблера вообще.

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

По-настоящему решить проблемы, связанные с аппаратурой (или, даже более того, зависящие от аппаратуры, как, к примеру, повышение быстродействия программы), невозможно без знания ассемблера.

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

Компьютер составлен из нескольких физических устройств, каждое из которых подключено к одному блоку, называемому системным. Чтобы понять их функциональное назначение, посмотрим на структурную схему типичного компьютера (рис. 1). Она не претендует на безусловную точность и имеет целью лишь показать назначение, взаимосвязь и типовой состав элементов современного персонального компьютера.

Рис. 1. Структурная схема персонального компьютера

2. Программная модель микропроцессора

На современном компьютерном рынке наблюдается большое разнообразие различных типов компьютеров. Поэтому возможно предположить возникновение у потребителя вопроса о том, как оценить возможности конкретного типа (или модели) компьютера и его отличительные особенности от компьютеров других типов (моделей). Чтобы собрать воедино все понятия, характеризующие компьютер с точки зрения его функциональных программно-управляемых свойств, существует специальный термин - архитектура ЭВМ. Впервые понятие архитектура ЭВМ стало упоминаться с появлением машин 3-го поколения для их сравнительной оценки.

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

Данные регистры можно разделить на две большие группы:

1) 6 пользовательских регистров;

2) 16 системных регистров.

3. Пользовательские регистры

Как следует из названия, пользовательскими регистры называются потому, что программист может использовать их при написании своих программ. К этим регистрам относятся (рис. 2):

1) восемь 32-битных регистров, которые могут использоваться программистами для хранения данных и адресов (их еще называют регистрами общего назначения (РОН)):

eax/ax/ah/al;

ebx/bx/bh/bl;

edx/dx/dh/dl;

ecx/cx/ch/cl;

ebp/bp;

esi/si;

edi/di;

esp/sp.

2) шесть регистров сегментов: cs, ds, ss, es, fs, gs;

3) регистры состояния и управления:

регистр флагов eflags/flags;

регистр указателя команды eip/ip.

Рис. 2. Пользовательские регистры

Многие из этих регистров приведены с наклонной разделительной чертой. Это не разные регистры - это части одного большого 32-разрядного регистра. Их можно использовать в программе как отдельные объекты.

4. Регистры общего назначения

Все регистры этой группы позволяют обращаться к своим "младшим" частям. Использовать для самостоятельной адресации можно только младшие 16- и 8-битные части этих регистров. Старшие 16 бит этих регистров как самостоятельные объекты недоступны.

Перечислим регистры, относящиеся к группе регистров общего назначения. Так как эти регистры физически находятся в микропроцессоре внутри арифметико-логического устройства (АЛ>), то их еще называют регистрами АЛУ:

1) eax/ax/ah/al (Accumulator register) - аккумулятор. Применяется для хранения промежуточных данных. В некоторых командах использование этого регистра обязательно;

2) ebx/bx/bh/bl (Base register) - базовый регистр. Применяется для хранения базового адреса некоторого объекта в памяти;

3) ecx/cx/ch/cl (Count register) - регистр-счетчик. Применяется в командах, производящих некоторые повторяющиеся действия. Его использование зачастую неявно и скрыто в алгоритме работы соответствующей команды.

К примеру, команда организации цикла loop, кроме передачи управления команде, находящейся по некоторому адресу, анализирует и уменьшает на единицу значение регистра есх/сх;

4) edx/dx/dh/dl (Data register) - регистр данных.

Так же, как и регистр eax/ax/ah/al, он хранит промежуточные данные. В некоторых командах его использование обязательно; для некоторых команд это происходит неявно.

Следующие два регистра используются для поддержки так называемых цепочечных операций, т. е. операций, производящих последовательную обработку цепочек элементов, каждый из которых может иметь длину 32, 16 или 8 бит:

1) esi/si (Source Index register) - индекс источника.

Этот регистр в цепочечных операциях содержит текущий адрес элемента в цепочке-источнике;

2) edi/di (Destination Index register) - индекс приемника (получателя). Этот регистр в цепочечных операциях содержит текущий адрес в цепочке-приемнике.

В архитектуре микропроцессора на программно-аппаратном уровне поддерживается такая структура данных, как стек. Для работы со стеком в системе команд микропроцессора есть специальные команды, а в программной модели микропроцессора для этого существуют специальные регистры:

1) esp/sp (Stack Pointer register) - регистр указателя стека. Содержит указатель вершины стека в текущем сегменте стека.

2) ebp/bp (Base Pointer register) - регистр указателя базы кадра стека. Предназначен для организации произвольного доступа к данным внутри стека.

Использование жесткого закрепления регистров для некоторых команд позволяет более компактно кодировать их машинное представление. Знание этих особенностей позволит при необходимости хотя бы на несколько байт сэкономить память, занимаемую кодом программы.

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

В программной модели микропроцессора имеется шесть сегментных регистров: cs, ss, ds, es, gs, fs.

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

Для того чтобы указать на сегменты, к которым программа имеет доступ в конкретный момент времени, и предназначены сегментные регистры. Фактически (с небольшой поправкой) в этих регистрах содержатся адреса памяти, с которых начинаются соответствующие сегменты. Логика обработки машинной команды построена так, что при выборке команды, доступе к данным программы или к стеку неявно используются адреса во вполне определенных сегментных регистрах.

Микропроцессор поддерживает следующие типы сегментов.

1. Сегмент кода. Содержит команды программы. Для доступа к этому сегменту служит регистр cs (code segment register) - сегментный регистр кода. Он содержит адрес сегмента с машинными командами, к которому имеет доступ микропроцессор (т. е. эти команды загружаются в конвейер микропроцессора).

2. Сегмент данных. Содержит обрабатываемые программой данные. Для доступа к этому сегменту служит регистр ds (data segment register) - сегментный регистр данных, который хранит адрес сегмента данных текущей программы.

3. Сегмент стека. Этот сегмент представляет собой область памяти, называемую стеком. Работу со стеком микропроцессор организует по следующему принципу: последний записанный в эту область элемент выбирается первым. Для доступа к этому сегменту служит регистр ss (stack segment register) - сегментный регистр стека, содержащий адрес сегмента стека.

4. Дополнительный сегмент данных. Не явно алгоритмы выполнения большинства машинных команд предполагают, что обрабатываемые ими данные расположены в сегменте данных, адрес которого находится в сегментном регистре ds. Если программе недостаточно одного сегмента данных, то она имеет возможность использовать еще три дополнительных сегмента данных. Но в отличие от основного сегмента данных, адрес которого содержится в сегментном регистре ds, при использовании дополнительных сегментов данных их адреса требуется указывать явно с помощью специальных префиксов переопределения сегментов в команде. Адреса дополнительных сегментов данных должны содержаться в регистрах es, gs,fs (extension data segment registers).

6. Регистры состояния и управления

В микропроцессор включены несколько регистров, которые постоянно содержат информацию о состоянии как самого микропроцессора, так и программы, команды которой в данный момент загружены на конвейер. К этим регистрам относятся:

1) регистр флагов eflags/flags;

2) регистр указателя команды eip/ip.

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

1. eflags/flags (flag register) - регистр флагов. Разрядность eflags/flags - 32/16 бит. Отдельные биты данного регистра имеют определенное функциональное назначение и называются флагами. Младшая часть этого регистра полностью аналогична регистру flags для 18086. На рисунке 3 показано содержимое регистра eflags.

Рис. 3. Содержимое регистра eflags

Исходя из особенностей использования флаги регистра eflags/flags можно разделить на три группы:

1) восемь флагов состояния.

Эти флаги могут изменяться после выполнения машинных команд. Флаги состояния регистра eflags отражают особенности результата исполнения арифметических или логических операций. Это дает возможность анализировать состояние вычислительного процесса и реагировать на него с помощью команд условных переходов и вызовов подпрограмм. В таблице 1 приведены флаги состояния и указано их назначение.

2) один флаг управления.

Обозначается df (Directory Flag). Он находится в 10-м бите регистра eflags и используется цепочечными командами. Значение флага df определяет направление поэлементной обработки в этих операциях: от начала строки к концу (df = 0) либо наоборот, от конца строки к ее началу (df = 1). Для работы с флагом df существуют специальные команды: eld (снять флаг df) и std (установить флаг df). Применение этих команд позволяет привести флаг df в соответствие с алгоритмом и обеспечить автоматическое увеличение или уменьшение счетчиков при выполнении операций со строками.

3) пять системных флагов.

Управляют вводом-выводом, маскируемыми прерываниями, отладкой, переключением между задачами и виртуальным режимом 8086. Прикладным программам не рекомендуется модифицировать без необходимости эти флаги, так как в большинстве случаев это приведет к прерыванию работы программы. В таблице 2 перечислены системные флаги, их назначение.

Таблица 1. Флаги состоянияТаблица 2. Системные флаги

2. eip/ip (Instraction Pointer register) - регистр-указатель команд. Регистр eip/ip имеет разрядность 32/16 бит и содержит смещение следующей подлежащей выполнению команды относительно содержимого сегментного регистра cs в текущем сегменте команд. Этот регистр непосредственно недоступен программисту, но загрузка и изменение его значения производятся различными командами управления, к которым относятся команды условных и безусловных переходов, вызова процедур и возврата из процедур. Возникновение прерываний также приводит к модификации регистра eip/ip.

Автор: Цветкова А.В.

<< Назад: Ассемблер (Об ассемблере. Программная модель микропроцессора. Пользовательские регистры. Регистры общего назначения. Сегментные регистры. Регистры состояния и управления)

>> Вперед: Программы на Ассемблере (Структура программы на Ассемблере. Синтаксис Ассемблера. Операторы сравнения. Операторы и их приоритет. Упрощенные директивы определения сегмента. Идентификаторы, создаваемые директивой MODEL. Модели памяти. Модификаторы модели памяти)

Рекомендуем интересные статьи раздела Конспекты лекций, шпаргалки:

Культурология. Конспект лекций

Социальная психология. Шпаргалка

Гражданское право. Особенная часть. Шпаргалка

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

Читайте и пишите полезные комментарии к этой статье.

<< Назад

Последние новости науки и техники, новинки электроники:

Машина для прореживания цветов в садах 02.05.2024

В современном сельском хозяйстве развивается технологический прогресс, направленный на повышение эффективности процессов ухода за растениями. В Италии была представлена инновационная машина для прореживания цветов Florix, созданная с целью оптимизации этапа уборки урожая. Этот инструмент оснащен мобильными рычагами, позволяющими его легко адаптировать к особенностям сада. Оператор может регулировать скорость тонких проводов, управляя им из кабины трактора с помощью джойстика. Такой подход значительно повышает эффективность процесса прореживания цветов, обеспечивая возможность индивидуальной настройки под конкретные условия сада, а также сорт и вид фруктов, выращиваемых на нем. После двухлетних испытаний машины Florix на различных типах плодов результаты оказались весьма обнадеживающими. Фермеры, такие как Филиберто Монтанари, который использовал машину Florix в течение нескольких лет, отмечают значительное сокращение времени и трудозатрат, необходимых для прореживания цветов. ...>>

Усовершенствованный микроскоп инфракрасного диапазона 02.05.2024

Микроскопы играют важную роль в научных исследованиях, позволяя ученым погружаться в мир невидимых глазу структур и процессов. Однако различные методы микроскопии имеют свои ограничения, и среди них было ограничение разрешения при использовании инфракрасного диапазона. Но последние достижения японских исследователей из Токийского университета открывают новые перспективы для изучения микромира. Ученые из Токийского университета представили новый микроскоп, который революционизирует возможности микроскопии в инфракрасном диапазоне. Этот усовершенствованный прибор позволяет увидеть внутренние структуры живых бактерий с удивительной четкостью в нанометровом масштабе. Обычно микроскопы в среднем инфракрасном диапазоне ограничены низким разрешением, но новейшая разработка японских исследователей позволяет преодолеть эти ограничения. По словам ученых, разработанный микроскоп позволяет создавать изображения с разрешением до 120 нанометров, что в 30 раз превышает разрешение традиционных м ...>>

Воздушная ловушка для насекомых 01.05.2024

Сельское хозяйство &#8211; одна из ключевых отраслей экономики, и борьба с вредителями является неотъемлемой частью этого процесса. Команда ученых из Индийского совета сельскохозяйственных исследований &#8211; Центрального научно-исследовательского института картофеля (ICAR-CPRI) в Шимле представила инновационное решение этой проблемы &#8211; воздушную ловушку для насекомых, работающую от ветра. Это устройство адресует недостатки традиционных методов борьбы с вредителями, предоставляя данные о популяции насекомых в реальном времени. Ловушка полностью работает за счет энергии ветра, что делает ее экологически чистым решением, не требующим электропитания. Ее уникальная конструкция позволяет отслеживать как вредных, так и полезных насекомых, обеспечивая полный обзор популяции в любой сельскохозяйственной зоне. "Оценивая целевых вредителей в нужное время, мы можем принимать необходимые меры для контроля как насекомых-вредителей, так и болезней", &#8211; отмечает Капил ...>>

Случайная новость из Архива

Исследование умных молекул 04.02.2013

Умственные способности свойственны не только людям и животным. Ученые говорят также об "умных" молекулах, непосредственно реагирующих на внешние раздражители, изменяя свою форму. Биофизики исследовательского объединения университетов Мюнхена Nanosystems Initiative Munich (NIM) впервые продемонстрировали этот процесс на единичной молекуле.

В будущем "умные" молекулы могут работать как нанопереключатели, реагируя на смены состояний, такие как холодно-горячо, светло-темно, изменение концентрации соли и т. п. При заданных условиях специально подобранная молекула будет менять форму, подавая четкий однозначный сигнал. Молекулы с такими свойствами можно найти в различных группах элементов, прежде всего среди белков и искусственных полимеров.

Но до того как использовать "умные" молекулы на практике, стоит изучить свойства таких соединений. Сотрудник Мюнхенского университета Людвига-Максимилиана (входящего в NIM) д-р Михаэль Наш из группы проф. Германа Гауба впервые успешно провел реакцию, в ходе которой было видно изменение состояния молекулы. Для этого д-р Наш с коллегами поместили ими же созданный искусственный полимер на золотую поверхность с помощью сканирующего атомно-силового микроскопа. Один конец полимера был закреплен на поверхности, второй - на игле микроскопа. Когда ученые увеличили содержание соли в окружающем молекулу веществе, она стала постепенно сжиматься.

"В концентрированном растворе соли молекула сжалась, - говорит д-р Наш. - Когда концентрация уменьшилась, молекула вернулась к первоначальному размеру. В этом исследовании нам впервые удалось наблюдать оба процесса у единичной молекулы полимера". Нанопереключатели на основе таких молекул можно будет использовать в биосенсорах, лекарственных препаратах, хроматографии и многих других областях.

Другие интересные новости:

▪ Беспроводные наушники 9.1 Sony MDR-HW700DS

▪ Йогурт может избавить от депрессии

▪ Карта расширения ASUS Hyper M.2 X16 Card V2

▪ Батареи на основе бумаги

▪ Новый рекорд скорости для электрокаров

Лента новостей науки и техники, новинок электроники

 

Интересные материалы Бесплатной технической библиотеки:

▪ раздел сайта Автомобиль. Подборка статей

▪ статья В здравом уме и твердой памяти. Крылатое выражение

▪ статья Что такое феодальная система? Подробный ответ

▪ статья Розмарин. Легенды, выращивание, способы применения

▪ статья Варка олифы. Простые рецепты и советы

▪ статья Реактивный двигатель из куриного яйца. Физический эксперимент

Оставьте свой комментарий к этой статье:

Имя:


E-mail (не обязательно):


Комментарий:





All languages of this page

Главная страница | Библиотека | Статьи | Карта сайта | Отзывы о сайте

www.diagram.com.ua

www.diagram.com.ua
2000-2024