HateLace/app/src/main/java/hatelace/instructions/Add.java

33 lines
808 B
Java

package hatelace.instructions;
import hatelace.*;
public class Add extends Instruction {
private Address src;
private Word imm;
private Address dest;
/** Add immediate value to memory address. */
public Add(Address src, Word imm, Address dest) {
this.src = src;
this.imm = imm;
this.dest = dest;
}
public void execute(Memory memory, ProgramCounter PC) {
memory.write(this.dest, memory.read(this.src).add(this.imm));
PC.incPC();
}
protected String opcode() {
return "ADD";
}
public String toString() {
return String.format("%s [%s] %s [%s]", this.opcode(), this.src, this.imm, this.dest);
}
protected Object[] operands() {
return new Object[] { this.src, this.imm, this.dest };
}
}