Слайд 2Команды пересылки данных
Наиболее распространенный тип машинных команд.
В таких командах
должна содержаться следующая информация:
адреса источника и получателя операндов;
длина подлежащих пересылке данных (вбайтах или словах), заданная явно или косвенно;
способ адресации каждого из операндов.
Пересылочные операции внутри процессора имеют тип «регистр-регистр». Передачи между процессором и памятью относятся к типу «регистр-память», а пересылки в памяти— к типу «память-память».
Слайд 3Команды арифметической и логической обработки
Для каждой формы представления чисел обычно предусматривается
некий стандартный набор операций.
Выполнение арифметических и логических операций сопровождается формированием в АЛУ признаков (флагов), характеризующих этот результат.
Часто фиксируемые признаки:
Z (Zero) – нулевой результат;
N (Negative) – отрицательный результат;
V(oVerflow) – переполнение разрядной сетки;
С (Carry) – наличие переноса.
Слайд 4Команды арифметической и логической обработки
Стандартный набор операций над целыми числами :
двухместные
арифметические операции (+, -, *, /);
одноместные арифметические операции (-, abs);
операции сравнения (=, <>, >, <, <=, >=).
Часто дополняется такими операциями, как вычисление остатка от целочисленного деления, сложение с учетом переноса, вычитание с учетом заема, увеличение значения операнда на единицу (инкремент), уменьшение значения операнда на единицу (декремент).
Стандартный набор операций над работы с числами, представленными в форме с плавающей запятой
основные арифметические операции;
операции сравнения;
операции преобразования:
формы представления (между фиксированной и плавающей запятой),
формата представления (с одинарной и двойной точностью).
Слайд 5Логические операции и сдвиги
Минимальный набор поддерживаемых логических операций – это «НЕ»,«И»,
«ИЛИ» и сложение по модулю 2.
Слайд 6Команды управления потоком команд
Три типа команд, способных изменить последовательность вычислений:
безусловные переходы;
условные
переходы (ветвления);
вызовы процедур и возвраты из процедур.
Слайд 7Команды ввода/вывода
Могут быть подразделены на команды управления периферийным устройством (ПУ), проверки
его состояния, ввода и вывода.
В современных персональных компьютерах ис-пользуются три различные схемы ввода-вывода:
1.Программируемый ввод-вывод с активным ожиданием.
2.Ввод-вывод с управлением по прерываниям.
3.Ввод-вывод с прямым доступом к памяти.
Слайд 8Форматы команд
Типовая команда, в общем случае, должка указывать:
подлежащую выполнению операцию;
адреса исходных
данных (операндов), над которыми выполняется операция;
адрес, по которому должен быть помещен результат операции.
В соответствии с этим команда состоит из двух частей: операционной и адресной.
Формат команды определяет ее структуру, то есть количество двоичных разрядов, отводимых под всю команду, а также количество н расположение отдельных полей команды. Полем называется совокупность двоичных разрядов, кодирующих составную часть команды.
Слайд 9Возможные структуры машинных команд
Адресность – количество адресов, включаемых в адресную часть
команды
Слайд 10Способы адресации операндов
Исполнительный адрес операнда (Амп) – двоичный код номера ячейки
памяти, служащей источником или приемником операнда.
Адресный код команды (АК) – двоичный код в адресном поле команды, из которого необходимо сформировать исполнительный адрес операнда,
Способ адресации — это способ формирования исполнительного адреса операнда по адресному коду команды. Как правило определяется кодом операции, но может быть задан явно. В таком случае операционная часть команды может содержать не только поле кода операции (КОП), но и поле для задания способа адресации (СА).
В современных ЭВМ обычно имеется возможность приложения нескольких различных способов адресации операндов к одной и той же операции.
Слайд 11Непосредственная адресация
При непосредственной адресации (НА) в адресном поле команды вместо адреса
содержится непосредственно сам операнд. Этот способ может применяться при выполнении арифметических операции, операций сравнения, а также для загрузки констант в регистры.
Непосредственная адресация позволяет повысить скорость выполнения операции, так как в этом случае вся команда, включая операнд, считывается из памяти одновременно и на время выполнения команды хранится в процессоре в специальном регистре команд (РК). Однако при использовании непосредственной адресации появляется зависимость кодов команд от данных, что требует изменения программы при каждом изменении непосредственного операнда.
Слайд 12Прямая адресация
Исполнительный адрес операнда совпадает с кодом в адресной части команды.
Недостатки:
ограниченный размер адресного пространства, так как для адресации к памяти большой емкости нужно «длинное» адресное поле;
адрес, указанный в команде, не может быть изменен в процессе вычислений, что ограничивает возможности по произвольному размещению программы в памяти.
Слайд 13Косвенная адресация
В ограниченном адресном поле команды указывается адрес ячейки, содержащей полноразрядный
исполни-тельный адрес операнда
Содержимое адресного поля команды остается неизменным, в то время как косвенный адрес в процессе выполнения программы можно изменять. Это позволяет проводить вычисления, когда адреса операндов заранее неизвестны и появляются лишь в процессе решения задачи.
Недостатки:
необходимость в двукратном обра-щении к памяти: сначала для извлечения адреса операнда, а затем для обращения к операнду;
задействуется лишняя ячейка памяти для хранения исполнительного адреса операнда..
Слайд 14Регистровая адресация
Аналог прямой адресации с той разницей, что адресное поле инструкции
указывает не на ячейку памяти, а на регистр процессора.
Преимущества:
короткое адресное поле в команде;
и исключение обращений к памяти
Недостаток:
возможности по использованию ограничены малым числом РОН и составе процессора.
Слайд 15Косвенная регистровая адресация
Косвенная адресация, где исполнительный адрес операнда хранится не
в ячейке основной памяти, а в регистре процессора.
Достоинства и ограничения косвенной регистровой адресации те же, что и у обычной косвенной адресации, но благодаря тому, что косвенный адрес хранится не в памяти, а в регистре, для доступа к операнду требуется на одно обращение к памяти меньше.
Слайд 16Адресация со смещением
При адресации со смешением исполнительный адрес формируется в результате
суммирования содержимого адресного поля команды с содержимым одного или нескольких регистров процессора.
Адресация со смещением предполагает, что адресная часть команды включает в себя как минимум одно поле (Ак). Константа может представлять собой некий базовым адрес, к которому добавляется хранящееся в регистре смещение. Допустим и противоположный подход: базовый адрес находится в регистре процессора, а в поле Ак указывается смещение относительно этого адреса.
Слайд 17Относительная адресация
Для получения исполнительного адреса операнда содержимое подполя Ак команды складывается
с содержимым счетчика команд. В момент вычисления исполнительного адреса операнда в счетчике команд может уже быть сформирован адрес следующей команды, что нужно учитывать при выборе величины смещения. Обычно подполе Ак трактуется как двоичное число в дополнительном коде.
Главное достоинство данного способа адресации состоит в том, что он делает программу перемещаемой в памяти: независимо от текущего расположения программы в адресном пространстве взаимное положение команды и операнда остается неизменным.
Слайд 18Базовая регистровая адресация
Регистр, называемый базовым, содержит полноразрядный адрес, а подполе АС,
- смешение относительно этого адреса. Ссылка на базовый регистр может быть явной или неявной.
Базовую регистровую адресацию обычно используют для доступа к элементам массива, положение которого в памяти в процессе вычислений может меняться. В базовый регистр заносится начальный адрес массива, а адрес элемента массива указывается в подполе АС команды в виде смещения относительно печатного адреса массива. Достоинство данного способа адресации в том, что смещение имеет меньшую длину, чем полный адрес, и это позволяет сократить длину адресного поля команды.
Слайд 19Базовая регистровая адресация
Регистр, называемый базовым, содержит полноразрядный адрес, а подполе АС,
- смешение относительно этого адреса. Ссылка на базовый регистр может быть явной или неявной.
Более типичен случаи, когда в роли базового регистра выступает один из регистров общего назначения, тогда его номер явно указывается в подполе R команды.
Базовую регистровую адресацию обычно используют для доступа к элементам массива, положение которого в памяти в процессе вычислений может меняться. В базовый регистр заносится начальный адрес массива, а адрес элемента массива указывается в подполе АС команды в виде смещения относительно печатного адреса массива. Достоинство данного способа адресации в том, что смещение имеет меньшую длину, чем полный адрес, и это позволяет сократить длину адресного поля команды.
Слайд 20Индексная адресация
При индексной адресации (ИА) подполе АС содержит адрес ячейки
памяти, а регистр (указанный явно или неявно) – смещение относительно этого адреса. Поскольку при индексной адресации в поле АС находится полноразрядный адрес ячейки памяти, играющий роль базы, длина этого поля больше, чем при базовой регистровой адресации.
Слайд 21
В большинстве ЭВМ увеличение или уменьшение содержимого индексного регистра до
или после обращения к нему осуществляется автоматически как часть машинного цикла. Такой прием называется автоиндексированием. Если для индексном адресации используются специально выделенные регистры, автоиндексирование может производиться неявно и автоматически. При задействовании для хранения индексов регистров общего назначения необходимость операции автоиндексировання должна указываться в команде специальным битом.
Автоиндексирование с увеличением содержимого индексного регистра носит название автоинкрементной адресации и может быть описано следующим образом:
АИСП = АС + (R), или , АИСП = АС + (R).
В первом варианте, увеличение содержимого индексного регистра происходит после формирования исполнительного адреса, и этот способ называется постинкрементным автоиндексированием. Во втором случае сначала производится увеличение содержимого индексного регистра, и уже новое значение используется для формирования исполнительного адреса. Тогда говорят о преинкрементном автоиндексировании.
Аналогично реализуется автоиндексирование с уменьшением содержимого индексного регистра. Оно носит название автодекрементной адресации. Здесь также возможны два варианта, отличающиеся последовательностью выполнения операции уменьшения содержимого индексного регистра и вычисления исполнительного адреса; постдекрементное автоиндексирование и предекрементное автоиндексирование
Интересным и весьма полезным является еще один вариант индексной адресации — индексная адресация с масштабированием и смещением: содержимое индексного регистра умножается на масштабный коэффициент и суммируется с АС. Масштабным коэффициент может принимать значения 1, 2, 4 или 8. для чего в адресной части команды выделяется дополнительное поле. Описанный способ адресации реализован, например, в микропроцессорах фирмы Intel.