3.4.4 Командные циклы и длина команд
Число тактовых циклов ЦПУ, требуемых для выполнения команды, определяется форматом команды и используемым режимом адресации, и не зависит, собственно, от команды. Понятие количества тактовых циклов относится к MCLK.
Циклы прерывания и сброса
В таблице 3.14 приведено количество циклов ЦПУ для обслуживания прерывания и сброса.
Таблица 3.14. Циклы прерывания и сброса
Действие |
Кол-во циклов |
Длина команды |
Возврат из прерывания (RETI) |
5 |
1 |
Получение прерывания |
6 |
- |
Сброс WDT |
4 |
- |
Сброс (nonRST/NMI) |
4 |
- |
Циклы команд формата-II (один операнд) и их длина
В таблице 3.15 приводится длина и необходимое количество циклов ЦПУ для всех адресных режимов команд формата-II.
Таблица 3.15. Количество циклов и длина команд формата-II
Режим адресации |
Действие |
Длина команды |
Пример |
RRA,RRC SWPB,SXT |
PUSH |
CALL |
Rn |
1 |
3 |
4 |
1 |
SWPB R5 |
@Rn |
3 |
4 |
4 |
1 |
RRC @R9 |
@Rn+ |
3 |
4 |
5 |
1 |
SWPB @R10+ |
#N |
См.прим. |
4 |
5 |
2 |
CALL #81H |
X(Rn) |
4 |
5 |
5 |
2 |
CALL 2(R7) |
EDE |
4 |
5 |
5 |
2 |
PUSH EDE |
&EDE |
4 |
5 |
5 |
2 |
SXT &EDE |
Примечание: команда формата-II в непосредственном режиме адресации
Не следует использовать команды RRA, RRC и SXT с непосредственным режимом в поле получателя. Их использование в непосредственном режиме приведет к выполнению непредсказуемой программной операции.
Циклы команд формата-III (команды перехода) и их длина
Все команды перехода требуют одно слово кода и при выполнении используют два цикла ЦПУ, независимо от того, сделан переход или нет.
Циклы команд формата-I (двойной операнд) и их длина
В таблице 3.16 приводится длина и необходимое количество циклов ЦПУ для всех адресных режимов команд формата-I.
Таблица 3.16. Количество циклов и длина команд формата-I
Режим адресации |
Кол-во циклов |
Длина команды |
Пример |
Src |
Dst |
Rn |
Rm |
1 |
1 |
MOV R5,R8 |
PC |
2 |
1 |
BR R9 |
x(Rm) |
4 |
2 |
ADD R5,3(R6) |
EDE |
4 |
2 |
XOR R8,EDE |
&EDE |
4 |
2 |
MOV R5,&EDE |
@Rn |
Rm |
2 |
1 |
AND @R4,R5 |
PC |
3 |
1 |
BR @R8 |
x(Rm) |
5 |
2 |
XOR @R5,8(R6) |
EDE |
5 |
2 |
MOV @R5,EDE |
&EDE |
5 |
2 |
XOR @R5,&EDE |
@Rn+ |
Rm |
2 |
1 |
ADD @R5+,R6 |
PC |
3 |
1 |
BR @R9+ |
x(Rm) |
5 |
2 |
XOR @R5,8(R6) |
EDE |
5 |
2 |
MOV @R9+,EDE |
&EDE |
5 |
2 |
XOR @R9+,&EDE |
#N |
Rm |
2 |
2 |
MOV #20,R9 |
PC |
3 |
2 |
BR #2AEh |
x(Rm) |
5 |
3 |
MOV #0300h,0(SP) |
EDE |
5 |
3 |
ADD #33,EDE |
&EDE |
5 |
3 |
ADD #33,&EDE |
x(Rn) |
Rm |
3 |
2 |
MOV 2(R5),R7 |
PC |
3 |
2 |
BR 2(R6) |
TONI |
6 |
3 |
MOV 4(R7),TONI |
x(Rm) |
6 |
3 |
ADD 3(R4),6(R9) |
&TONI |
6 |
3 |
MOV 3(R4),&TONI |
EDE |
Rm |
3 |
2 |
AND EDE,R6 |
PC |
3 |
2 |
BR EDE |
TONI |
6 |
3 |
CMP EDE,TONI |
x(Rm) |
6 |
3 |
MOV EDE,0(SP) |
&TONI |
6 |
3 |
MOV EDE,&TONI |
&EDE |
Rm |
3 |
2 |
MOV &EDE,R8 |
PC |
3 |
2 |
BRA &EDE |
TONI |
6 |
3 |
MOV &EDE,TONI |
x(Rm) |
6 |
3 |
MOV &EDE,0(SP) |
&TONI |
6 |
3 |
MOV &EDE,&TONI |
3.4.5 Описание набора команд
Карта команд показана на рис.3.20, а полный набор команд приведен в таблице 3.17.
Рис.3.20. Карта команд ядра
|
000 |
040 |
080 |
0С0 |
100 |
140 |
180 |
1С0 |
200 |
240 |
280 |
2С0 |
300 |
340 |
380 |
3С0 |
0xxx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4xxx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8xxx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1xxx |
RRC |
RRC.B |
SWPB |
|
RRA |
RRA.B |
SXT |
|
PUSH |
PUSH.B |
CALL |
|
RETI |
|
|
|
14xx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18xx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1Cxx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20xx |
JNE/JNZ |
24xx |
JEQ/JZ |
28xx |
JNC |
2Cxx |
JC |
30xx |
JN |
34xx |
JGE |
38xx |
JL |
3Cxx |
JMP |
4xxx |
MOV,MOV.B |
5xxx |
ADD,ADD.B |
6xxx |
ADDC,ADDC.B |
7xxx |
SUBC,SUBC.B |
8xxx |
SUB,SUB.B |
9xxx |
CMP,CMP.B |
Axxx |
DADD,DADD.B |
Bxxx |
BIT,BIT.B |
Cxxx |
BIC,BIC.B |
Dxxx |
BIS,BIS.B |
Exxx |
XOR,XOR.B |
Fxxx |
AND,AND.B |
|