Renaming opcodes and implementing toStrings for all the instructions
This commit is contained in:
parent
4b11ef49e7
commit
209050446d
8 changed files with 38 additions and 26 deletions
|
@ -7,17 +7,5 @@ public abstract class Instruction {
|
|||
|
||||
protected abstract Object[] operands();
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
// Buffer to hold our formatted instruction
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(this.opcode());
|
||||
|
||||
for (Object operand : this.operands()) {
|
||||
sb.append(" ");
|
||||
sb.append(operand.toString());
|
||||
}
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
public abstract String toString();
|
||||
}
|
||||
|
|
|
@ -20,7 +20,11 @@ public class Add extends Instruction {
|
|||
}
|
||||
|
||||
protected String opcode() {
|
||||
return "add";
|
||||
return "ADD";
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return String.format("%s [%s] %s [%s]", this.opcode(), this.src, this.imm, this.dest);
|
||||
}
|
||||
|
||||
protected Object[] operands() {
|
||||
|
|
|
@ -18,10 +18,14 @@ public class Copy extends Instruction {
|
|||
}
|
||||
|
||||
protected String opcode() {
|
||||
return "copy";
|
||||
return "CPY";
|
||||
}
|
||||
|
||||
protected Object[] operands() {
|
||||
return new Object[] {this.imm, this.dest};
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return String.format("%s %s [%s]", this.opcode(), this.imm, this.dest);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,15 +10,15 @@ public class Halt extends Instruction {
|
|||
PC.halt();
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "HALT";
|
||||
}
|
||||
|
||||
protected String opcode() {
|
||||
return "halt";
|
||||
return "HLT";
|
||||
}
|
||||
|
||||
protected Object[] operands() {
|
||||
return new Object[] {};
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return this.opcode();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,10 +15,14 @@ public class Jump extends Instruction {
|
|||
}
|
||||
|
||||
protected String opcode() {
|
||||
return "jump";
|
||||
return "JMP";
|
||||
}
|
||||
|
||||
protected Object[] operands() {
|
||||
return new Object[] {this.index};
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return String.format("%s %s", this.opcode(), this.index);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,10 +23,14 @@ public class JumpEq extends Instruction {
|
|||
}
|
||||
|
||||
protected String opcode() {
|
||||
return "jumpeq";
|
||||
return "JEQ";
|
||||
}
|
||||
|
||||
protected Object[] operands() {
|
||||
return new Object[] {this.index, this.src, this.imm};
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return String.format("%s %s [%s] %s", this.opcode(), this.index, this.src, this.imm);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,10 +20,14 @@ public class Mul extends Instruction {
|
|||
}
|
||||
|
||||
protected String opcode() {
|
||||
return "mul";
|
||||
return "MUL";
|
||||
}
|
||||
|
||||
protected Object[] operands() {
|
||||
return new Object[] { this.src1, this.src2, this.dest };
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return String.format("%s [%s] [%s] [%s]", this.opcode(), this.src1, this.src2, this.dest);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,10 +16,14 @@ public class Print extends Instruction {
|
|||
}
|
||||
|
||||
protected String opcode() {
|
||||
return "print";
|
||||
return "PRT";
|
||||
}
|
||||
|
||||
protected Object[] operands() {
|
||||
return new Object[] {this.address};
|
||||
}
|
||||
return new Object[] { this.address };
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return String.format("%s [%s]", this.opcode(), this.address);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue