2. Система команд учебного микропроцессора

 

2.1.Понятие о системе команд

2.2.Понятие о мнемонике команды

2.3.Методы адресации учебного микропроцессора

2.4. Особенности команд учебного микропроцессора

2.4.1.Команды пересылки кодов

2.4.2.Команды арифметико–логической обработки

2.4.3.Команды передачи управления

2.4.4.Стековая память и работа с ней

2.4.5.Команды управления микропроцессором

2.4.6.Влияние команды на регистр признаков

2.4.7.Машинные такты.

 

2.1.Понятие о системе команд

 

Учебный микропроцессор организует обработку цифровой информации в соответствии с командами человека-пользователя, заранее занесенными в память микропроцессорной системы и составляющими программу.

Перечень команд и их особенности жестко фиксированы конструкцией микропроцессора и не могут быть изменены.

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

  1. мнемоника команды;

  2. код операции;

  3. формат команды;

  4. назначение команды;

  5. конкретное содержание;

  6. методы адресации;

  7. влияние команды на регистр признаков;

  8. число и типы машинных циклов;

  9. минимальное число машинных тактов.

Система команд учебного микропроцессора устанавливает следующее назначение команд:

  1. пересылка кодов;

  2. арифметико-логическая обработка кодов;

  3. передача управления;

  4. управление микропроцессором.

Команды одинакового назначения отличаются друг от друга своим конкретным содержанием.

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

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

Другие характеристики, входящие в систему команд учебного микропроцессора, будут рассмотрены особо.

Рис.2.1.Форматы команд учебного микропроцессора

 

2.2.Понятие о мнемонике команды

 

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

Программа в машинных кодах может быть легко введена в микро-ЭВМ и выполнена в ней. Однако составить такую программу человеку–программисту очень трудно. Трудности, в первую очередь, связаны с большим числом команд микропроцессора. Байтовый код операции может иметь до 28 = 25610 различных вариантов, почти каждый из которых определяет новую команду. Практически невозможно запомнить соответствие шестнадцатеричных кодов операций, форматов и конкретного содержания такого количества команд. Поэтому при программировании обычно используется буквенно–цифровая запись команд в виде так называемых мнемоник.

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

ADD B – сложить код из аккумулятора с кодом из регистра B;

SUB C – вычесть код из регистр C из кода, содержащегося в аккумуляторе;

CMP H – сравнить код из аккумулятора с кодом из с регистра H;

MOV D,E – переместить, переслать код из регистра E в регистр D.

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

D8 – байт данных в двухбайтовой команде;

D16 – два байта данных в трехбайтовой команде;

N – адрес порта ввода – вывода в двухбайтовой команде;

ADR – двухбайтовый адрес в трехбайтовой команде.

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

 

2.3.Методы адресации учебного микропроцессора

 

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

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

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

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

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

Неявная и регистровая адресация оперируют только с регистрами микропроцессора и не позволяют обращаться к ячейкам памяти ОЗУ и ПЗУ. Для такого обращения нужен адрес соответствующей ячейки.

Косвенная адресация рассматривает в качестве адреса ячейки шестнадцатеричный двоичный код, содержащийся в какой–либо регистровой паре или указателе стека SP. Особенно часто в качестве регистра косвенной адресации в учебном микропроцессоре используется регистровая пара HL.

При прямой адресации адрес источника или приемника кода в памяти или порте ввода–вывода указывается в цифровой части мнемоники в виде двухбайтового кода ADR или однобайтового – N.

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

 

Соответствие мнемоник команд и их кодов операции Таблица 2.1

H\L 0 1 2 3 4 5 6 7 8 A B C D E F L/H
0 NOP LXI
B,D16
STAX
B
INX
B
INR
B
DCR
B
MVI
B,D8
RLC - LDAX
B
DCX
B
INR
C
DCR
C
MVI
C,D8
RRC 0
1 - LXI
D,D16
STAX
D
INX
D
INR
D
DCR
D
MVI
D,D8
RAL - LDAX
D
DCX
D
INR
E
DCR
E
MVI
E,D8
RAR 1
2 - LXI
H,D16
SHLD
ADR
INX
H
INR
H
DCR
H
MVI
H,D8
DAA - LHLD
ADR
DCX
H
INR
L
DCR
L
MVI
L,D8
CMA 2
3 - LXI
SP,D16
STA
ADR
INX
SP
INR
M
DCR
M
MVI
M,D8
STC - LDA
ADR
DCX
SP
INR
A
DCR
A
MVI
A,D8
CMC 3
4 MOV
B,B
MOV
B,C
MOV
B,D
MOV
B,E
MOV
B,H
MOV
B,L
MOV
B,M
MOV
B,A
MOV
C,B
MOV
C,D
MOV
C,E
MOV
C,H
MOV
C,L
MOV
C,M
MOV
C,A
4
5 MOV
D,B
MOV
D,C
MOV
D,D
MOV
D,E
MOV
D,H
MOV
D,L
MOV
D,M
MOV
D,A
MOV
E,B
MOV
E,D
MOV
E,E
MOV
E,H
MOV
E,L
MOV
E,M
MOV
E,A
5
6 MOV
H,B
MOV
H,C
MOV
H,D
MOV
H,E
MOV
H,H
MOV
H,L
MOV
H,M
MOV
H,A
MOV
L,B
MOV
L,D
MOV
L,E
MOV
L,H
MOV
L,L
MOV
L,M
MOV
L,A
6
7 MOV
M,B
MOV
M,C
MOV
M,D
MOV
M,E
MOV
M,H
MOV
M,L
HLT MOV
M,A
MOV
A,B
MOV
A,D
MOV
A,E
MOV
A,H
MOV
A,L
MOV
A,M
MOV
A,A
7
8 ADD
B
ADD
C
ADD
D
ADD
E
ADD
H
ADD
L
ADD
M
ADD
A
ADC
B
ADC
D
ADC
E
ADC
H
ADC
L
ADC
M
ADC
A
8
9 SUB
B
SUB
C
SUB
D
SUB
E
SUB
H
SUB
L
SUB
M
SUB
A
SBB
B
SBB
D
SBB
E
SBB
H
SBB
L
SBB
M
SBB
A
9
A ANA
B
ANA
C
ANA
D
ANA
E
ANA
H
ANA
L
ANA
M
ANA
A
XRA
B
XRA
D
XRA
E
XRA
H
XRA
L
XRA
M
XRA
A
A
B ORA
B
ORA
C
ORA
D
ORA
E
ORA
H
ORA
L
ORA
M
ORA
A
CMP
B
CMP
D
CMP
E
CMP
H
CMP
L
CMP
M
CMP
A
B
C RNZ POP
B
JNZ
ADR
JMP
ADR
CNZ
ADR
PUSH
B
ADI
D8
RST
0
RZ JZ
ADR
- CZ
ADR
CALL
ADR
ACI
D8
RST
1
C
D RNC POP
D
JNC
ADR
OUT
N
CNC
ADR
PUSH
D
SUI
D8
RST
2
RC JC
ADR
IN
N
CC
ADR
- SBI
D8
RST
3
D
E RPO POP
H
JPO
ADR
XTHL CPO
ADR
PUSH
H
ANI
D8
RST
4
RPE JPE
ADR
XCHG CPE
ADR
- XRI
D8
RST
5
E
F RP POP
PSW
JP
ADR
DI CP
ADR
PUSH
PSW
ORI
D8
RST
6
RM JM
ADR
EI CM
ADR
- CPI
D8
RST
7
F
H/L 0 1 2 3 4 5 6 7 8 A B C D E F L\H

 

 

2.4. Особенности команд учебного микропроцессора

 

2.4.1.Команды пересылки кодов

 

Эти команды предназначены для организации обмена кодами между регистрами СОЗУ, ячейками памяти, портами ввода – вывода.

Наиболее многочисленна группа команд однобайтовых пересылок. Микропроцессор, исполняя команды этой группы, осуществляет пересылку, одного байта данных. Большинство команд этой группы записывается в виде MOV R1,R.

По этой команде содержимое регистра R пересылается в регистр R1, причем содержимое регистра R при этом не меняется. В качестве регистров R1 и R в команде могут фигурировать: A – аккумулятор; B, C, D, E, H, L – регистры общего назначения; M – ячейка памяти, адрес которой содержится в регистровой паре HL. Возможности использования в командах тех или иных регистров будем далее пояснять краткой записью вида MOV R1,R,

.

Легко видеть, что команда MOV R1,R может использовать как регистровую, так и косвенную адресацию источника и приемника пересылаемого кода. Так команда MOV A,C пересылает содержимое регистра С в аккумулятор А, а команда MOV M,A – пересылает содержимое аккумулятора А в ячейку ОЗУ с адресом, который содержится в данный момент времени в регистровой паре HL.

Кроме регистровой и косвенной адресации для однобайтовых пересылок может быть использована и непосредственная адресация. Она реализуется в команде MVI R,D8,

.

По этой команде байт данных D8 помещается в один из регистров A, B, C, D, E, H, L или адресуемую косвенно ячейку памяти М.

Обмен данными между аккумулятором и ячейками памяти или портами ввода–вывода дополнительно поддерживают команды с прямой адресацией:

LDA ADR – загрузить аккумулятор из ячейки памяти с адресом ADR;

STA ADR – загрузить ячейку памяти с адресом ADR из аккумулятора;

IN N – ввести в аккумулятор байт из порта ввода с адресом N;

OUT N – вывести байт из аккумулятора в порт вывода с адресом N.

По командам двухбайтовых пересылок микропроцессор осуществляет пересылку двухбайтовых (шестнадцатиразрядных) чисел. Рассмотрим примеры таких команд.

LXI Rp,D16 – загрузить регистровую пару Rp двухбайтовым числом D16.

.

LHLD ADR – загрузить регистровую пару HL из ячеек памяти с адресами ADR и ADR+1. При этом байт из ячейки с младшим адресом ADR будет загружен в младший регистр пары – L, а байт из ячейки со старшим адресом ADR+1 – в старший регистр пары – H.

SHLD ADR – загрузить ячейки памяти с адресами ADR и ADR+1 из регистровой пары HL. При этом байт из младшего регистра пары – L будет загружен по младшему адресу ADR, а байт из старшего регистра пары – H, будет загружен по старшему адресу ADR+1.

 

2.4.2.Команды арифметико–логической обработки

 

Большинство команд арифметико–логической обработки оперируeт байтовыми словами. Здесь имеются команды сложения, сложения с учетом переноса, вычитания, вычитания с учетом заема, поразрядных логических «И», «ИЛИ», «исключающего ИЛИ» и сравнения.

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

ADD R – сложить код из аккумулятора с кодом из регистра R;

ADC R – сложить код из аккумулятора с кодом из регистра R с учетом переноса, содержащегося в бите С регистра признаков F;

SUB R – вычесть код из регистра R из кода, содержащегося в аккумуляторе;

SBB R – вычесть код из регистра R из кода, содержащегося в аккумуляторе с учетом заема, содержащегося в бите С регистра признаков F;

ANA R – выполнить операцию поразрядного логического «И» над кодами, содержащимися в аккумуляторе и регистре R;

ORA R – выполнить операцию поразрядного логического «ИЛИ» над кодами, содержащимися в аккумуляторе и регистре R;

XRA R – выполнить операцию поразрядного логического «исключающего ИЛИ» над кодами, содержащимися в аккумуляторе и регистре R;

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

В этих командах

,

то есть второй операнд адресуется регистровым методом или косвенно.

Имеются варианты рассмотренных команд, имеющие двухбайтовый формат, и использующие непосредственную адресацию второго операнда. Это, соответственно, команды: ADI D8; ACI D8; SUI D8; SBI D8; ANI D8; ORI D8; XRI D8; CPI D8.

Поясним действие команд сравнения CMP R (CPI D8). Эти команды не меняют содержимого аккумулятора, но воздействуют на регистр признаков F точно также, как и команды вычитания SUB R (SUI D8).

Отметим, что команды сложения ADD R, ADC R, ADI D8, ACI D8 могут использоваться не только для двоичного, но и для двоично–десятичного сложения. В последнем случае результата сложения, находящийся в аккумуляторе, должен быть скорректирован специальной командой десятичной коррекции DAA. Эту команду можно использовать только при сложении. Специальной команды коррекции результата для двоично-десятичного вычитания учебный микропроцессор не имеет.

С двухбайтовыми словами оперирует команда двухбайтового сложения DAD Rp – сложить содержимое регистровой пары Rp с содержимым регистровой

HL и поместить результат в пару HL.

.

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

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

INR R – инкрементировать регистр R;

DCR R – декрементировать регистр R;

INX Rp – инкрементировать регистровую пару Rp;

DCX Rp – декрементировать регистровую пару Rp.

и .

Команды сдвига будут рассмотрены отдельно.

 

2.4.3.Команды передачи управления

 

Команды передачи управления нарушают естественный порядок выборки и исполнения команд, перезагружая новым значением счетчик команд PC. Простейшей здесь является трехбайтовая команда безусловной передачи управления JMP ADR. При выполнении этой команды в счетчик команд PC загружается адрес перехода ADR. Следующая команда выбираться из ячейки с этим новым адресом.

Широко используются команды условной передачи управления, которые можно записать обобщенной мнемоникой J — CON ADR. Эти команды передают управление по адресу перехода, если выполняется условие CON, определяемое одним из битов регистра признаков F. В противном случае естественный порядок выполнения команд не нарушается. В мнемониках конкретных команд суффикс — CON принимает следующие значения:

При работе с подпрограммами используют команду безусловной передачи управления с возвратом CALL ADR – вызвать подпрограмму. В памяти микро-ЭВМ эта команда размещается так, как показано на рис.2.2.

Рис.2.2.Размещение в памяти микро-ЭВМ команды CALL ADR

 

Микропроцессор, выполняя эту команду, не только передает управление по адресу ADR, указанному в команде. Он, кроме того, запоминает в стеке адрес следующей команды . Этот адрес называют адресом возврата. После выполнения подпрограммы должен быть обеспечен возврат управления на адрес . Для обеспечения такого возврата каждая подпрограмма заканчивается специальной командой возврата RET. Эта команда извлекает из стека адрес возврата , записанный туда командой CALL ADR, и загружает его в счетчик команд PC.

При обработке прерываний программы, возникающих по запросам внешних устройств, часто используется однобайтовый аналог команды CALL ADR — команда рестарта RST X. По этой команде в стек записывается адрес возврата , а управление передается по фиксированным адресам, кодированным числом X цифровой части мнемоники.

Имеются также команды условного вызова подпрограмм и возврата из них, имеющие обобщенные мнемоники C — CON АDR и R — CON. Вызов подпрограммы или возврат из нее осуществляется этими командами только, если выполняется условие —CON. Здесь используются такие же условия, как и в командах условной передачи управления.

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

 

2.4.4.Стековая память и работа с ней

 

Учебный микропроцессор позволяет организовать в ОЗУ микро–ЭВМ стековую память или просто стек. В такой памяти формируется своеобразная очередь из записанных кодов, а процедура обмена кодами с микропроцессором строится по принципу – «последний вошел – первый вышел» (LIFO).

Наглядной моделью стековой памяти является ящик с положенной в него стопкой книг (рис.2.3).

Книги здесь изображают хранимые в стеке цифровые коды. Понятно, что книга, положенная в ящик последней («последний вошел») окажется наверху стопки. Поэтому именно она будет извлечена из ящика первой (“первый вышел”).

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

Рис.2.3. Модель стековой памяти

 

Микропроцессор размещает (считывает) такие коды в последовательных ячейках некоторой области ОЗУ, используя косвенную адресацию с помощью регистра SP – указателя вершины стека (указателя стека). Этот указатель содержит адрес (указывает на адрес) младшего байта самого последнего, самого верхнего из записанных в стек чисел.

Структура стека, в который ранее были записаны два числа A1 и A2, представлена на рис.2.4. Будем рассматривать это состояние стека как исходное.

Рис.2.4. Исходное состояние стека

 

При записи в стек, например, при выполнении команды CALL ADR, число А3 записывается в две свободные ячейки ОЗУ, находящиеся выше указателя, при этом указатель передвигается на новую вершину – на адрес младшего байта только что записанного числа. Новое состояние стека после записи числа А3 изображено на рис.2.5.

При чтении из стека, например, командой RET из стека извлекается самое последнее, самое верхнее из записанных в стек чисел. При этом указатель стека передвигается на две позиции вниз – на адрес младшего байта числа, записанного в стек перед извлеченным. Следует иметь ввиду, что только что извлеченное число все еще сохраняется в своих ячейках ОЗУ до момента записи в эти ячейки. После извлечения из стека числа А3 диаграмма стека принимает вид, показанный на рис.2.6.

Рис.2.5.Состояние стека после записи числа А3

Рис.2.6.Состояние стека после чтения числа А3

 

В момент включения микропроцессора все его регистры, том числе и указатель стека SP содержат произвольные коды. Поэтому для правильной работы стека его необходимо настроить на вполне определенную область ОЗУ (инициализировать).

Инициализация проводится командой непосредственной загрузки регистра SP LXI SP,D16.

Кроме рассмотренных команд вызова подпрограмм и возврата из них со стеком работают команды однобайтового формата PUSH Rp – записать в стек содержимое регистровой пары Rp и POP Rp – восстановить из стека содержимое регистровой пары Rp.

.

 

2.4.5.Команды управления микропроцессором

 

В эту группу входят команды однобайтового формата HLT – останов, NOP – нет операции, EI – разрешить прерывания и DI – запретить прерывания.

По команде «останов» выполнение операций заканчивается, выходы шины адреса и данных микропроцессора переводятся в высокоимпедансное состояние. Из состояния останова микропроцессор может быть выведен только внешними сигналами сброса – RESET и прерывания – INT (прерывания должны быть предварительно, до останова разрешены командой EI).

Команда NOP – холостая операция, по которой никакие действия не выполняются. Она используется в качестве заполнителя пустых мест в программе (при отладке) и для организации временных задержек программным путем.

 

2.4.6.Влияние команды на регистр признаков

 

Команды пересылки кодов, передачи управления и управления микропроцессором не изменяют содержимого регистра признаков F. Из этого правила есть единственное исключение – команда POP PSW. Эта команда, в частности, восстанавливает из стека содержимое регистра F и поэтому оказывает воздействие на все его биты.

По влиянию на регистр признаков все команды арифметико – логической обработки можно разделить на 4 группы:

  1. воздействуют на все признаки;

  2. воздействуют только на признак переноса С;

  3. воздействуют на все признаки, кроме признака переноса C;

  4. не изменяют содержимого регистра признаков.

К первой группе относятся все команды арифметико – логической обработки двух байтовых операндов (ADD R, SUB R и т. д.), а также команда десятичной коррекции аккумулятора DAA. Следует иметь в виду, что логические команды этой группы (ANA R, ANI D8 и др.) сбрасывают бит переноса С.

Ко второй группе относятся команды сложения двухбайтовых чисел DAD Rp, команды управления битом переноса STC и CMC, а также все команды сдвига.

Команда STC устанавливает признак переноса, а CMC – инвертирует его.

В командах арифметического сдвига RAL и RAR бит переноса С участвует в процессе циклического сдвига информации в аккумуляторе на один разряд в качестве дополнительного (9-го) бита аккумулятора.

Работу этих команд иллюстрирует рис.2.7.

Рис.2.7.Работа команд арифметического сдвига

 

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

Рис.2.8.Работа команд циклического сдвига

 

К третьей группе относятся команды инкремента и декремента INR R, DCR R.

К четвертой группе относятся команды инкремента и декремента регистровых пар INX Rp, DCR Rp, а также команда инверсии аккумулятора CMA.

 

2.4.7.Машинные такты.

 

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

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

Каждый машинный цикл представляет собой единичный акт взаимодействия микропроцессора со внешними по отношению к нему устройствами (ОЗУ, ПЗУ, порты ввода-вывода).

Пользователя чаще всего интересует длительность командного цикла. Ее принято измерять в машинных тактах.

Под машинным тактом понимают интервал времени между передними фронтами двух следующих друг за другом импульсов синхронизации CLK1, поступающих с тактового генератора. Длительность машинного такта, очевидно, равна периоду тактового сигнала, то есть

,

где fCLK — частота тактового сигнала.

Так, если fCLK = 2MГц, Ттакт=0,5 мкс.

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

МТ = МТmin.

Включение, принятое в микро–ЭВМ Микролаб КР580 дает соотношение

МТ = МЦ +МТmin.

Приведем для примера численные значения МЦ и МТmin для некоторых команд учебного микропроцессора (табл.2).

Из таблицы видно, что:

  1. время расходуется на выполнение любой команды, в том числе и холостой команды NOP;

  2. наибольшим быстродействием обладают команды с регистровой адресацией;

  3. несколько менее эффективно сочетание регистровой адресации с непосредственной или косвенной;

  4. наименее эффективна прямая адресация; команды с такой адресацией выполняются в несколько раз медленнее, чем с регистровой.

Таблица 2.2 МЦ и МТmin некоторых команд учебного микропроцессора

Команда

МЦ

МТmin

Методы адресации

MOV R1, R

()

1

5

Регистровый

MOV M, R

2

7

Регистровый, косвенный

MVI R, D8

2

7

Непосредственный, регистровый

MVI M, D8

3

10

Непосредственный, косвенный

LDA ADR

4

13

Прямой, неявный

DCR R

1

5

Регистровый

DCR M

3

10

Косвенный

JNZ ADR

3

10

----

RET

3

10

----

NOP

1

4

----

Рейтинг@Mail.ru