рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Поле смещения в команде.

Поле смещения в команде. - Лекция, раздел Программирование, Основы алгоритмизации и программирования 8-, 16– Или 32-Разрядное Целое Число Со Знаком, Представляющее Собой, Полност...

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

6. Поле непосредственного операнда. Необязательное поле, представляющее собой 8-, 16– или 32-разрядный непосредственный операнд. Наличие этого поля, конечно, отражается на значении байта modr/m.

 

2. Способы задания операндов

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

Операнд задается неявно на микропрограммном уровне. В этом случае команда явно не содержит операндов. Алгоритм выполнения команды использует некоторые объекты по умолчанию (регистры, флаги в eflags и т. д.).

Операнд задается в самой команде (непосредственный операнд). Операнд находится в коде команды, то есть является ее частью. Для хранения такого операнда в команде выделяется поле длиной до 32 бит. Непосредственный операнд может быть только вторым операндом (источником). Операнд-получатель может находиться либо в памяти, либо в регистре. Например, mov ax,0ffffh пересылает в регистр ах шестнадцатеричную константу ffff. Команда add sum,2 складывает содержимое поля по адресу sum с целым числом 2 и записывает результат по месту первого операнда, то есть в память.

Операнд находится в одном из регистров. Регистровые операнды указываются именами регистров. В качестве регистров могут использоваться:

- 32-разрядные регистры ЕАХ, ЕВХ, ЕСХ, EDX, ESI, EDI, ESP, EBP;

- 16-разрядные регистры АХ, ВХ, СХ, DX, SI, DI, SP, ВР;

- 8-разрядные регистры АН, AL, BH, BL, CH, CL, DH, DL;

- сегментные регистры CS, DS, SS, ES, FS, GS.

Например, команда add ax,bx складывает содержимое регистров ах и bх и записывает результат в bх. Команда dec si уменьшает содержимое si на 1.

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

- прямую адресацию;

- косвенную адресацию.

В свою очередь, косвенная адресация имеет следующие разновидности:

косвенная базовая адресация; другое ее название — регистровая косвенная адресация;

косвенная базовая адресация со смещением;

косвенная индексная адресация со смещением;

косвенная базовая индексная адресация;

косвенная базовая индексная адресация со смещением.

Операндом является порт ввода-вывода. Помимо адресного пространства оперативной памяти микропроцессор поддерживает адресное пространство ввода-вывода, которое используется для доступа к устройствам ввода-вывода. Объем адресного пространства ввода-вывода составляет 64 Кбайт. Для любого устройства компьютера в этом пространстве выделяются адреса. Конкретное значение адреса в пределах этого пространства называется портом ввода-вывода. Физически порту ввода-вывода соответствует аппаратный регистр (не путать с регистром микропроцессора), доступ к которому осуществляется с помощью специальных команд ассемблера in и out. Например:

 

in al ,60h ; ввести байт из порта 60h

Регистры, адресуемые с помощью порта ввода-вывода, могут иметь разрядность 8, 16 или 32 бит, но для конкретного порта разрядность регистра фиксирована. Команды in и out работают с фиксированной номенклатурой объектов. В качестве источника информации или получателя применяются так называемые регистры-аккумуляторы еах, ах, al. Выбор регистра определяется разрядностью порта. Номер порта может задаваться непосредственным операндом в командах in и out или значением в регистре dx. Последний способ позволяет динамически определить номер порта в программе. Например:

mov dx,20h ;записать номер порта 20п в регистр dx

mov al ,20h ;записать значение 20h в регистр al

out dx ,al ;вывести значение 20h в порт 20Н

Операнд находится в стеке.

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

В двухоперандной машинной команде возможны следующие сочетания операндов:

регистр–регистр;

регистр–память;

память–регистр;

непосредственный операнд–регистр;

непосредственный операнд–память.

Для данного правила есть исключения, которые касаются:

– команд работы с цепочками, которые могут перемещать данные из памяти в память;

– команд работы со стеком, которые могут переносить данные из памяти в стек, также находящийся в памяти;

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

Из перечисленных сочетаний операндов наиболее часто употребляются регистр–память и память–регистр. Адрес операнда формируется как сумма двух составляющих – сдвинутого на 4 бита содержимого сегментного регистра и 16-битного эффективного адреса, который в общем случае вычисляется как сумма трех компонентов: базы, смещения и индекса.

Рассмотрим особенности основных видов адресации операндов в памяти.

 

– Конец работы –

Эта тема принадлежит разделу:

Основы алгоритмизации и программирования

Основы алгоритмизации и программирования... Литература В И Юров Ассемблер Учебник для вузов Н И Голубь Искусство программирования на Ассемблере Лекции и упражнения...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Поле смещения в команде.

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Организация памяти
Физическая память к которой процессор имеет доступ по шине адреса называется оперативной памятью. Реально ОЗУ организовано как последовательность ячеек, т.е. байтов. Диапазон значений физи

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

Регистры общего назначения
Регистры общего назначения используются в программах для хранения: операндов

Сегментные регистры
Процессоры Intel аппаратно поддерживают сегментную организацию программы. Это означает, что любая программа состоит из трех сегментов: кода, данных и стека. Логически машинные команды в архитектуре

Регистры состояния и управления
В процессор включены два регистра, постоянно содержащие информацию о состоянии как самого процессора, так и программы, команды которой он в данный момент обрабатывает:

Формат команд
Машинная команда представляет собой закодированное по определенным правилам указание процессору на выполнение некоторой операции. Правила кодирования команд называются форматом команд

Обработка прерываний
Система прерываний любого компьютера является его важнейшей частью, позволяющей быстро реагировать на события, обработка которых должна выполнятся немедленно: сигналы от машинных таймеров, нажатия

К теме о регистрах 2.3 Регистры состояния и управления
В процессор включены два регистра, постоянно содержащие информацию о состоянии как самого процессора, так и программы, команды которой он в данный момент обрабатывает:

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

Процесс разработки программы
На рис. 6.1 приведена общая схема процесса разработки программы на ассемблере. Название программы соответствует рассмотренному далее примеру программы. На схеме выделено четыре этапа этого процесса

Лекция 6.
1. Синтаксис Ассэмблера Программа на ассемблере представляет собой совокупность блоков памяти, называемых сегментами. Программа может состоять из одного или нескольких таких блоков-сегмент

Лекция 7.
1. Простые типы данных Ассемблера Любая программа предназначена для обработки некоторой информации, поэтому вопрос о том, какие типы данных языка программирования доступны для использовани

Лекция 8.
1.Структура машинной команды. Способы задания операндов. Машинная команда представляет собой закодированное по определенным правилам указание микропроцессору на выполнение некоторой операц

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

Байт режима адресации modr/m.
Значения этого байта определяет используемую форму адреса операндов. Операнды могут находиться в памяти в одном или двух регистрах. Если операнд находится в памяти, то байт modr/m определяет компон

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

Косвенная базовая (регистровая) адресация
При такой адресации эффективный адрес операнда может находиться только в базовом регистре bx/ebx.   Синтаксически в команде этот режим адресации выражается заключением имени

Лекция 9.
1.Функциональная классификация машинных команд Система команд Pentium 4, последнего на сегодняшний день процессора архитектуры IA-32, включает в себя около 330 мнемоник машинных команд. Ес

Команды общего назначения
Командами данной категории охватывается базовый набор операций по обработке данных. Классификация целочисленных машинных команд приведена на рис.9.1.

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

MMX-расширения
Расширение MMX ориентировано в основном на использование в мультимедийных приложениях. Основная идея MMX заключается в одновременной обработке нескольких элементов данных за одну инструкцию. Расшир

XMM-расширения
В 1999 году семейство процессоров Pentium фирмы Intel пополнилось новой мо­делью — процессором Pentium III. Основу его архитектуры составляет ядро про­цессора Pentium II, дополненное модулем SSE (S

Лекция 10.
1.Пересылка данных Алгоритм, представляет собой формализованное описание логики работы программы. Способы такой формализации весьма разнятся: от текстового описания последовательности дейс

Работа со стеком
Стек — это область памяти, специально выделяемая для временного хранения данных программы. Важность стека определяется тем, что для него в структуре программы предусмотрен отдельный сегмент. На тот

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги