Fetch/Execute
Cycles for MINIJVM Instruction Set (Revised 10/10/03)
----------------------------------------------------
T0. PC=PC+1; fetch; goto (OP) PCout F0 F1 ENB INC PCin CS RD OE Opin
IADD (OP) = 60
----------------------------------------------------------------
T1.
MAR=SP=SP-1 SPout F0 F1 ENB INVA SPin
MARin
T2. H=TOS;
rd
TOSout F1 ENB
Hin CS RD OE inD
T3.
MDR=TOS=MDR+H MDRout F0 F1 ENA ENB TOSin
MDRin
T4. wr; End
MARout CS outD End
ISUB
(OP) = 64
---------------------------------------------------------------
T1.
MAR=SP=SP-1 SPout F0 F1 ENB INVA SPin
MARin
T2. H=TOS;
rd
TOSout F1 ENB
Hin CS RD OE inD
T3.
MDR=TOS=MDR-H MDRout F0 F1 ENA ENB INVA INC
TOSin MDRin
T4.
wr;
End MARout CS outD
End
IAND (OP) = 7E
---------------------------------------------------------------
T1.
MAR=SP=SP-1 SPout F0 F1 ENB INVA SPin
MARin
T2. H=TOS;
rd
TOSout F1 ENB
Hin CS RD OE inD
T3.
MDR=TOS=MDR&&H MDRout ENA ENB TOSin MDRin
T4. wr; End
MARout CS outD
End
IOR (OP) = 80
---------------------------------------------------------------
T1.
MAR=SP=SP-1 SPout F0 F1 ENB INVA SPin
MARin
T2. H=TOS;
rd
TOSout F1 ENB Hin CS RD OE inD
T3.
MDR=TOS=MDR||H MDRout F1 ENA ENB TOSin
MDRin
T4. wr; End
MARout CS outD
End
POP (OP) = 57
---------------------------------------------------------------
T1. MAR=SP=SP-1
MARout CS RD OE
inD
T3. TOS=MDR; End
MDRout F1 ENB TOSin
End
IRETURN (OP) = AC
----------------------------------------------------------------
T1.
Pwroff
Pwroff
ILOAD (OP) = 15
----------------------------------------------------------------
T1. PC=PC+1;
fetch PCout F0 F1 ENB INC PCin CS RD OE MBRin
T2.
MAR=MBR MBRout F1 ENB
MARin
T3. rd
MARout CS RD OE inD
T4.
TOS=MDR MDRout F1 ENB
TOSin
T5.
MAR=SP=SP+1 SPout F0 F1 ENB INC
SPin MARin
T6. wr; End MARout CS outD End
BIPUSH (OP) = 10
---------------------------------------------------------------
T1. PC=PC+1;
fetch PCout F0 F1 ENB INC PCin CS RD OE
MBRin
T2.
MDR=TOS=MBR MBRout F1 ENB MDRin
TOSin
T3.
MAR=SP=SP+1 SPout F0 F1
ENB INC SPin MARin
T4. wr; End MARout CS outD End
ISTORE
(OP) = 36
---------------------------------------------------------------
T1. PC=PC+1;
fetch PCout F0 F1 ENB INC PCin CS RD OE MBRin
T2. MAR=MBR
MBRout F1 ENB MARin
T3.
MDR=TOS TOSout F1 ENB
MDRin
T4. MAR=SP=SP-1; wr
SPout F0 F1 ENB INVA SPin MARin MARout CS outD
T5. rd
MARout CS
RD
OE inD
T6.
TOS=MDR; End MDRout F1 ENB
TOSin End
GOTO
(OP) = A7
---------------------------------------------------------------
T1. PC=PC+1;
fetch PCout F0 F1 ENB INC PCin CS RD
OE MBRin
T2. PC=MBR; End
MBRout F1 ENB
PCin End
IFEQ (OP) = 99
---------------------------------------------------------------
T1. PC=PC+1;
fetch PCout F0 F1 ENB INC PCin CS RD
OE MBRin
T2.
TOS=TOS TOSout F1 ENB
TOSin
T3. if (Z)
PC=MBR * Z -> (MBRout F1 ENB PCin)
T4.
MAR=SP=SP-1 SPout F0 F1 ENB INVA SPin
MARin
T5. rd
MARout CS RD OE inD
T6.
TOS=MDR; End MDRout F1 ENB TOSin
End
IFLT (OP) = 9B
---------------------------------------------------------------
T1. PC=PC+1;
fetch PCout F0 F1 ENB INC PCin CS
RD OE MBRin
T2.
TOS=TOS TOSout F1 ENB
TOSin
T3. if (N)
PC=MBR-1 * N -> (MBRout F1 ENB PCin)
T4.
MAR=SP=SP-1 SPout F0 F1 ENB INVA SPin
MARin
T5. rd
MARout CS RD OE inD
T6.
TOS=MDR; End MDRout F1 ENB TOSin
End
IINC (OP) = 84
---------------------------------------------------------------
T1.
PC=PC+1; fetch PCout F0 F1 ENB INC PCin
CS RD OE MBRin
T2.
MAR=MBR MBRout F1 ENB MARin
T3. rd
MARout CS RD OE inD
T4.
MDR=MDR+1 MDRout F0 F1 ENB INC MDRin
T5. wr; End MARout CS outD End
* Note: "y -> x" means "y implies x" which says that y (N or Z) must
be 1 in step T3 for the switches x to be set.