Não são implementados nos microcontroladores UC3. São 4 instruções disponíveis a saber:
INCJOSP – Incrementa o operando apontador de pilha do Java
Descrição: Incrementa o registrador de sistema "Operando
apontador de pilha Java" com o valor.
Operação:
I. if ( JOSP[3:0] + imm < 0 )
TRAP 4
else if
(JOSP[3:0] + imm > 8 )
TRAP 3
else
JOSP ←
JOSP + imm;
imm3
imm
100
-4
101
-3
110
-2
111
-1
000
1
001
2
010
3
011
4
Sintaxe:
I.
incjosp imm
Operandos:
I. imm ∈ {-4, -3, -2, -1, 1, 2, 3, 4}
POPJC – puxa o contexto Java a partir do quadro
Descrição: Buscar o sistema registradores LV0 para LV7 usado no
estado Java a partir do atual quadro. O quadro de registrador (igual
a R9) é utilizado como registrador ponteiro.
Operação:
I. temp ←FRAME;
JAVA_LV0
←*(temp--);
JAVA_LV1
←*(temp--);
JAVA_LV2
←*(temp--);
JAVA_LV3
←*(temp--);
JAVA_LV4
←*(temp--);
JAVA_LV5
←*(temp--);
JAVA_LV6
←*(temp--);
JAVA_LV7
←*(temp--);
Sintaxe:
I.
popjc
Operandos:
I. nenhu
PUSHJC – Empurre Contexto Java para o Quadro
Descrição: Armazena o sistema de registradores LV0 para LV7 usados
no estado Java, na posição do corrente quadro. O quadro (igual ao
R9) é utilizado como registrador ponteiro.
Operação:
I. temp ←FRAME;
*(temp--)
←JAVA_LV0;
*(temp--)
←JAVA_LV1;
*(temp--)
←JAVA_LV2;
*(temp--)
←JAVA_LV3;
*(temp--)
←JAVA_LV4;
*(temp--)
←JAVA_LV5;
*(temp--)
←JAVA_LV6;
*(temp--)
←JAVA_LV7;
Sintaxe:
I.
pushjc
Operandos:
I.
nenhum
RETJ – Retorno do laço Java
Descrição: Retorna de um laço Java.
Operação:
I. PC ← LR;
J ← 1;
R ← 0;
if (
SR[M2:M0] == B’001 )
GM ←
0;
Sintaxe:
I
. retj
Operandos:
None
Nenhum comentário:
Postar um comentário