package hatelace.instructions; import hatelace.Instruction; import hatelace.Memory; import hatelace.ProgramCounter; import hatelace.IntWord; import hatelace.Word; import hatelace.Address; public class Add extends Instruction { private Word op1; private Word op2; private Address dest; public Add(Word op1, Word op2, Address dest) { this.op1 = op1; this.op2 = op2; this.dest = dest; } public void execute(Memory memory, ProgramCounter PC) { memory.write(this.dest, new IntWord(op1.add(op2))); PC.incPC(); } protected String opcode() { return "add"; } protected Object[] operands() { return new Object[] {this.op1, this.op2, this.dest}; } }