1#[allow(dead_code)]
2pub enum OpCode {
3 ADD,
4 AND,
5 BR,
6 JMP,
7 JSR,
8 LDB,
9 LDI,
10 LDR,
11 LEA,
12 NOT,
13 RET,
14 RTI,
15 SHF,
16 STB,
17 STI,
18 STR,
19 TRAP,
20}
21
22impl From<OpCode> for u8 {
23 fn from(val: OpCode) -> Self {
24 match val {
25 OpCode::ADD => 0b00000001,
26 OpCode::AND => 0b00000101,
27 OpCode::BR => 0b00000000,
28 OpCode::JMP => 0b00001100,
29 OpCode::JSR => 0b00000100,
30 OpCode::LDB => 0b00000010,
31 OpCode::LDI => 0b00001010,
32 OpCode::LDR => 0b00000110,
33 OpCode::LEA => 0b00001110,
34 OpCode::NOT => 0b00001001,
35 OpCode::RET => 0b00001100,
36 OpCode::RTI => 0b00001000,
37 OpCode::SHF => 0b00001101,
38 OpCode::STB => 0b00000011,
39 OpCode::STI => 0b00001011,
40 OpCode::STR => 0b00000111,
41 OpCode::TRAP => 0b00001111,
42 }
43 }
44}