Материал: Захаров, Сайфутдинов - Вычислительная техника

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Различные МП имеют различный набор команд, способы адресации в них одинаковы.

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

Основные способы адресации:

неявная адресация;

непосредственная адресация;

прямая адресация;

косвенная адресация.

Неявная адресация – это способ адресации данных (рис. 7.3), когда в составе команды указываются:

КОП;

адрес источника данных;

адрес приемника данных.

Адрес приемника и источника указаны в команде не явно, говорят, что они «встроены» в команду. При этом способе используются однобайтные команды.

0

1

0

0

0

1

1

1

 

значение бита команды

 

 

 

 

 

 

 

 

0

 

№ байта в формате команды

7

6

5

4

3

2

1

 

 

КОП под-

 

адрес

 

 

адрес

 

 

 

 

операции

регистра В

регистра А

 

Рис. 7.3. Неявная адресация

Команды с неявной адресацией отличаются наибольшей величиной быстродействия, так как для ее выполнения затрачиваются два микроцикла: выборка и операция выполнения.

Непосредственная адресация – способ определения операнда (рис. 7.4), который содержит в адресной части сам операнд, а не адрес операнда. Такой операнд называется непосредственным операндом, поскольку он автоматически вызывается из памяти одновременно с командой, следовательно, он сразу непосредственно становится доступным.

141

Команда с непосредственным адресом для загрузки константы 4 в регистр 1.

MVI R1 4

Рис. 7.4. Непосредственная адресация

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

Прямая адресация способ определения операнда – дать его полный адрес. Такой способ называется прямой адресацией. Как и непосредственная адресация, прямая адресация имеет некоторые ограничения: команда всегда будет иметь доступ только к одному и тому же адресу памяти. То есть значение может меняться, а адрес – нет.

Команды с прямой адресацией могут иметь длину, равную 2 или 3 байтам. 1 байт – КОП; 1–2 байта – для адреса.

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

При прямой адресации используются микропрограммы:

выборка кода операции;

декодирование;

выборка двух байт адреса;

два цикла обращения к памяти;

выполнение операции.

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

142

При таком

способе адресации определяемый операнд

берется из

памяти

или отправляется

в память, но адрес не зафиксирован жестко

в команде,

как при

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

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

7.3. Типы команд микроЭВМ

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

Команды в микроЭВМ подразделяются:

команды перемещения (пересылки данных);

арифметические;

логические;

команды ветвления (перехода).

Команды пересылки данных

Команды пересылки данных, называемые также командами перемещения дан-

ных, служат для пересылки данных в различные устройства хранения информации, которыми располагает микроЭВМ, а также для пересылки данных из этих устройств. К числу областей хранения информации относятся как ячейки памяти, так и регистры. В зависимости от того, какие устройства микроЭВМ участвуют в пересылке данных, различают команды: загрузка в регистр (MVI), пересылка данных из регистров (MOV), запись в память (STA) и пересылка данных из памяти (LDA). Как и любая другая команда, команда пересылки данных состоит из двух частей: кода операции и

143

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

При использовании команды пересылки из регистра в регистр (MOV) в ре-

гистр r1 загружается копия данных, содержащихся в регистре r2. Так, при выполнении команды MOV В, А копия данных, находящихся в аккумуляторе (регистре А), записывается в регистр В. Это 1-байтовая команда, реализуемая за два микроцикла. Если результат выполнения команды содержит 1 в старшем разряде или равен 0, то устанавливается в 1 соответствующий разряд регистра состояния.

При использовании команды запись аккумулятора в память прямая (STA)

данные из аккумулятора записываются в память. Второй и третий байты команды указывают на область памяти, в которую производится запись данных. Например, по команде STA 001F содержимое аккумулятора записывается в область памяти 001F. Это 3-байтовая команда, реализация которой занимает пять микроциклов. Значение разрядов регистра состояния в результате выполнения операции не изменяется.

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

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

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

144

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

Команда сравнения (CMP) производит сравнение операнда, находящегося в одном из регистров с содержимым аккумулятора. Результат операции сравнение не отражается на содержимом аккумулятора, а лишь изменяет установку регистра состояний (1 или 0).

Команды перехода или ветвления

Команда перехода (JMP), называемая также командой ветвления, позволяет ор-

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

7.4. Выполнение команды микропроцессором

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

го микрооперацией.

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

145