33 lines
808 B
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 };
|
|
}
|
|
}
|