|
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 |
|