Различные МП имеют различный набор команд, способы адресации в них одинаковы.
Способом адресации называется тип обращения к данным.
Основные способы адресации:
неявная адресация;
непосредственная адресация;
прямая адресация;
косвенная адресация.
Неявная адресация – это способ адресации данных (рис. 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
| 00539 |
| 02.03 |
| 0501 Конунников ЛР1-1 |
| 10Лекция 10 |
| 1136 |
| 1304 |
| 131 |
| 1362 |
| 15.02.16 1 пара |
| 1741 |