chore: format
This commit is contained in:
parent
60ad020d14
commit
aa413bcaf2
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
use crate::vm::VM;
|
use crate::vm::VM;
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
enum OpCode {
|
enum OpCode {
|
||||||
// branch
|
// branch
|
||||||
BR = 0,
|
BR = 0,
|
||||||
@ -44,23 +45,23 @@ enum OpCode {
|
|||||||
fn get_opcode(instruction: u16) -> OpCode {
|
fn get_opcode(instruction: u16) -> OpCode {
|
||||||
// the opcode is stored in the left 4 bits
|
// the opcode is stored in the left 4 bits
|
||||||
match instruction >> 12 {
|
match instruction >> 12 {
|
||||||
0 => OpCode::BR,
|
0 => OpCode::BR,
|
||||||
1 => OpCode::ADD,
|
1 => OpCode::ADD,
|
||||||
2 => OpCode::LD,
|
2 => OpCode::LD,
|
||||||
3 => OpCode::ST,
|
3 => OpCode::ST,
|
||||||
4 => OpCode::JSR,
|
4 => OpCode::JSR,
|
||||||
5 => OpCode::AND,
|
5 => OpCode::AND,
|
||||||
6 => OpCode::LDR,
|
6 => OpCode::LDR,
|
||||||
7 => OpCode::STR,
|
7 => OpCode::STR,
|
||||||
8 => OpCode::RTI,
|
8 => OpCode::RTI,
|
||||||
9 => OpCode::NOT,
|
9 => OpCode::NOT,
|
||||||
10 => OpCode::LDI,
|
10 => OpCode::LDI,
|
||||||
11 => OpCode::STI,
|
11 => OpCode::STI,
|
||||||
12 => OpCode::JMP,
|
12 => OpCode::JMP,
|
||||||
13 => OpCode::RES,
|
13 => OpCode::RES,
|
||||||
14 => OpCode::LEA,
|
14 => OpCode::LEA,
|
||||||
15 => OpCode::TRAP,
|
15 => OpCode::TRAP,
|
||||||
_ => OpCode::NOOP,
|
_ => OpCode::NOOP,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,21 +70,21 @@ pub fn execute_instruction(vm: &mut VM) {
|
|||||||
let opcode = get_opcode(instruction);
|
let opcode = get_opcode(instruction);
|
||||||
|
|
||||||
match opcode {
|
match opcode {
|
||||||
OpCode::BR => no_op(vm),
|
OpCode::BR => no_op(vm),
|
||||||
OpCode::ADD => no_op(vm),
|
OpCode::ADD => no_op(vm),
|
||||||
OpCode::LD => no_op(vm),
|
OpCode::LD => no_op(vm),
|
||||||
OpCode::ST => no_op(vm),
|
OpCode::ST => no_op(vm),
|
||||||
OpCode::JSR => no_op(vm),
|
OpCode::JSR => no_op(vm),
|
||||||
OpCode::AND => no_op(vm),
|
OpCode::AND => no_op(vm),
|
||||||
OpCode::LDR => no_op(vm),
|
OpCode::LDR => no_op(vm),
|
||||||
OpCode::STR => no_op(vm),
|
OpCode::STR => no_op(vm),
|
||||||
OpCode::RTI => no_op(vm),
|
OpCode::RTI => no_op(vm),
|
||||||
OpCode::NOT => no_op(vm),
|
OpCode::NOT => no_op(vm),
|
||||||
OpCode::LDI => no_op(vm),
|
OpCode::LDI => no_op(vm),
|
||||||
OpCode::STI => no_op(vm),
|
OpCode::STI => no_op(vm),
|
||||||
OpCode::JMP => no_op(vm),
|
OpCode::JMP => no_op(vm),
|
||||||
OpCode::RES => no_op(vm),
|
OpCode::RES => no_op(vm),
|
||||||
OpCode::LEA => no_op(vm),
|
OpCode::LEA => no_op(vm),
|
||||||
OpCode::TRAP => no_op(vm),
|
OpCode::TRAP => no_op(vm),
|
||||||
OpCode::NOOP => no_op(vm),
|
OpCode::NOOP => no_op(vm),
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user