АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Методы адресации и типы команд

Читайте также:
  1. I. Методы выбора инновационной политики
  2. II. Вывод и анализ кинетических уравнений 0-, 1-, 2-ого порядков. Методы определения порядка реакции
  3. II. Методы прогнозирования и поиска идей
  4. Team kata male 8-13 years (Командне ката хлопці 8-13 років)
  5. V. Правила и методы исследований при трансфузии (переливании) консервированной донорской крови и эритроцитсодержащих компонентов
  6. Административные методы управления
  7. Административные методы управления природопользованием и охраной окружающей среды.
  8. Алгоритми виконання команд
  9. Анализ воспитательного потенциала семьи. Методы изучения семьи.
  10. Анализ результатов теста. Стили и методы семейного воспитания
  11. Антропогенные воздействия на гидросферу и их экологические последствия. Методы защиты гидросферы.
  12. Апикально-корональные методы препарирования

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

В табл. 2.2 представлены основные методы адресации операндов, которые реализованы в компьютерах, рассмотренных в настоящей книге.

Таблица 2.2. Методы адресации

Метод адресации Пример команды Смысл команды Использование команды
Регистровая Add R4, R3 R4 = R4+R3 Для записи требуемого значения в регистр
Непосредственная или литерная Add R4, #3 R4 = R4+3 Для задания констант
Базовая со смещением Add R4, 100(R1) R4= R4+M(100+R1) Для обращения к локальным переменным
Косвенная регистровая Add R4, (R1) R4 = R4+M(R1) Для обращения по указателю к вычисленному адресу
Индексная Add R3, (R1+R2) R3 = R3+M(R1+R2) Полезна при работе с массивами: R1 – база, R3 – индекс
Прямая или абсолютная Add R1, (1000) R1=R1+M(1000) Полезна для обращения к статическим данным
Косвенная Add R1, @(R3) R1 = R1+M(M(R3)) Если R3 – адрес указателя р, то выбирается значение по этому указателю
Автоинкрементная Add R1, (R2)+ R1 = R1+M(R2) R2 = R2+d Полезна для прохода в цикле по массиву с шагом: R2 – начало массива. В каждом цикле R2 получает приращение d
Автодекрементная Add R1, (R2)– R2 = R2–d R1 = R1+M(R2) Аналогична предыдущей. Обе могут использоваться для реализации стека
Базовая индексная со смещением и масштабированием Add R1, 100(R2)(R3) R1=R1+M(100)+R2+R3*d Для индексации массивов

Адресация непосредственных данных и литерных констант обычно рассматривается как один из методов адресации памяти (хотя значения данных, к которым в этом случае производятся обращения, являются частью самой команды и обрабатываются в общем потоке команд).

В табл. 2.2 на примере команды сложения (Add) приведены наиболее употребительные названия методов адресации, хотя при описании архитектуры в документации производители компьютеров и ПО используют разные названия для этих методов. В табл. 2.2. знак "=" используется для обозначения оператора присваивания, а буква M обозначает память (Memory). Таким образом M(R1) обозначает содержимое ячейки памяти, адрес которой определяется содержимым регистра R1.

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

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

Таблица 2.3. Основные типы команд

Тип операции Примеры
Арифметические и логические Целочисленные арифметические и логические операции: сложение, вычитание, логическое сложение, логическое умножение и т. д.
Пересылки данных Операции загрузки/записи
Управление потоком команд Безусловные и условные переходы, вызовы процедур и возвраты
Системные операции Системные вызовы, команды управления виртуальной памятью и т. д.
Операции с плавающей точкой Операции сложения, вычитания, умножения и деления над вещественными числами
Десятичные операции Десятичное сложение, умножение, преобразование форматов и т. д.
Операции над строками Пересылки, сравнения и поиск строк

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

Обычно тип операнда (целый, вещественный, символ) определяет и его размер. Как правило, целые числа представляются в дополнительном коде. Для задания символов компания IBM использует код EBCDIC, другие компании применяют код ASCII. Для представления вещественных чисел с одинарной и двойной точностью придерживаются стандарта IEEE 754.

В ряде процессоров применяют двоично кодированные десятичные числа, которые представляют в упакованном и неупакованном форматах. Упакованный формат предполагает, что для кодирования цифр 0 – 9 используют 4 разряда и две десятичные цифры упаковываются в каждый байт. В неупакованном формате байт содержит одну десятичную цифру, которая обычно изображается в символьном коде ASCII.


1 | 2 | 3 | 4 | 5 | 6 | 7 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)