IN, OUT, XLAT, LEA, LDS, LES, ADC
This commit is contained in:
parent
782ff93ace
commit
08ef7d901b
@ -23,7 +23,14 @@ OpName :: enum {
|
||||
PUSH,
|
||||
POP,
|
||||
XCHG,
|
||||
IN,
|
||||
OUT,
|
||||
XLAT,
|
||||
LEA,
|
||||
LDS,
|
||||
LES,
|
||||
ADD,
|
||||
ADC,
|
||||
SUB,
|
||||
CMP,
|
||||
JMP,
|
||||
@ -204,6 +211,22 @@ instructions := [?]InstructionInfo {
|
||||
reg_info = reg_second_middle, has_address = true, word_size = LastBit{}, has_flip = true},
|
||||
{ opname = .XCHG, desc = "", mask = 0b11111000, encoding = 0b10010000,
|
||||
reg_info = reg_first_last, uses_accumulator = true, word_size = Force{}, },
|
||||
{ opname = .IN, desc = "", mask = 0b11111110, encoding = 0b11100100,
|
||||
has_data = true, word_size = LastBit{}, },
|
||||
{ opname = .IN, desc = "", mask = 0b11111110, encoding = 0b11101100,
|
||||
word_size = LastBit{}, },
|
||||
{ opname = .OUT, desc = "", mask = 0b11111110, encoding = 0b11100110,
|
||||
has_data = true, word_size = FourthBit{}, },
|
||||
{ opname = .OUT, desc = "", mask = 0b11111110, encoding = 0b11101110,
|
||||
word_size = LastBit{}, },
|
||||
{ opname = .XLAT, desc = "", mask = 0b11111111, encoding = 0b11010111,
|
||||
},
|
||||
{ opname = .LEA, desc = "", mask = 0b11111111, encoding = 0b10001101,
|
||||
has_address = true },
|
||||
{ opname = .LDS, desc = "", mask = 0b11111111, encoding = 0b11000101,
|
||||
has_address = true },
|
||||
{ opname = .LES, desc = "", mask = 0b11111111, encoding = 0b11000100,
|
||||
has_address = true },
|
||||
{ opname = .TBD, desc = "Reg/memory with register to either", mask = 0b11000100, encoding = 0b00000000,
|
||||
opcode_id = .First, reg_info = reg_second_middle, has_address = true, word_size = LastBit{}, has_flip = true },
|
||||
{ opname = .TBD, desc = "Immediate to register/memory", mask = 0b11111100, encoding = 0b10000000,
|
||||
@ -371,6 +394,7 @@ get_opname :: proc(b: u8) -> string {
|
||||
name: string
|
||||
switch b & 0b00111000 >> 3 {
|
||||
case 0b000: name = "add"
|
||||
case 0b010: name = "adc"
|
||||
case 0b101: name = "sub"
|
||||
case 0b111: name = "cmp"
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user