MIC1-Developer Help contents
  MIC1 Developer
  MIC1 Instruction Set
  MIC1 Register Set
  MAL Specification
  JAS Specification
  MIC1 User Manual
  FAQ's
 
   

MIC1 Instructionset

The MIC1 instructionset is shown in table below

Mnemonic Operands Description
BIPUSH byte Push a byte onto stack
DUP N/A Copy top word on stack and push onto stack
ERR N/A Print an error message and halt the simulator
GOTO label name Unconditional jump
HALT N/A Halt the simulator
IADD N/A Pop two words from stack; push their sum
IAND N/A Pop two words from stack; push Boolean AND
IFEQ label name Pop word from stack and branch if it is zero
IFLT label name Pop word from stack and branch if it is less than zero
IF_ICMPEQ label name Pop two words from stack and branch if they are equal
IINC variable name, byte Add a constant value to a local variable
ILOAD variable name Push local variable onto stack
IN N/A Reads a character from the keyboard buffer and pushes it onto the stack. If no character is available, 0 is pushed
INVOKEVIRTUAL method name Invoke a method
IOR N/A Pop two words from stack; push Boolean OR
IRETURN N/A Return from method with integer value
ISTORE variable name Pop word from stack and store in local variable
ISUB N/A Pop two words from stack; push their difference
LDC_W constant name Push constant from constant pool onto stack
NOP N/A Do nothing
OUT N/A Pop word off stack and print it to standard out
POP N/A Delete word from top of stack
SWAP N/A Swap the two top words on the stack
WIDE N/A Prefix instruction; next instruction has a 16-bit index

For further specification: MAL Specification 10. IJVM Instruction