lc3b_isa/
opcode.rs

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}