mirror of
https://github.com/WerWolv/ImHex-Patterns.git
synced 2026-03-28 15:57:02 -05:00
730 lines
19 KiB
JSON
730 lines
19 KiB
JSON
{
|
|
"name": "Intel 8051",
|
|
"includes": [],
|
|
"options": [],
|
|
"opcodes": [
|
|
{
|
|
"mask": "0000'0000",
|
|
"mnemonic": "NOP",
|
|
"format": ""
|
|
},
|
|
{
|
|
"mask": "0000'0010 AAAA'AAAA AAAA'AAAA",
|
|
"mnemonic": "LJMP",
|
|
"format": "#0x{A:04X}",
|
|
"metadata": [
|
|
{
|
|
"type": "jump",
|
|
"data": {
|
|
"destination": "A"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"mask": "1000'0000 AAAA'AAAA",
|
|
"mnemonic": "SJMP",
|
|
"format": "#0x{A:02X}",
|
|
"metadata": [
|
|
{
|
|
"type": "jump",
|
|
"data": {
|
|
"destination": "A"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"mask": "0111'0011",
|
|
"mnemonic": "JMP",
|
|
"format": "@A+DPTR"
|
|
},
|
|
{
|
|
"mask": "0100'0000 AAAA'AAAA",
|
|
"mnemonic": "JC",
|
|
"format": "PC + 0x{A:02X}",
|
|
"metadata": [
|
|
{
|
|
"type": "jump",
|
|
"data": {
|
|
"destination": "offset + 2 + A"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"mask": "0011'0000 BBBB'BBBB AAAA'AAAA",
|
|
"mnemonic": "JNB",
|
|
"format": "BIT[0x{B:02X}], PC + 0x{A:02X}",
|
|
"metadata": [
|
|
{
|
|
"type": "jump",
|
|
"data": {
|
|
"destination": "offset + 3 + A"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"mask": "0001'0000 BBBB'BBBB AAAA'AAAA",
|
|
"mnemonic": "JBC",
|
|
"format": "BIT[0x{B:02X}], PC + 0x{A:02X}",
|
|
"metadata": [
|
|
{
|
|
"type": "jump",
|
|
"data": {
|
|
"destination": "offset + 3 + A"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"mask": "0010'0000 AAAA'AAAA RRRR'RRRR",
|
|
"mnemonic": "JB",
|
|
"format": "BIT[0x{A:02X}], PC + 0x{R:02X}",
|
|
"metadata": [
|
|
{
|
|
"type": "jump",
|
|
"data": {
|
|
"destination": "offset + 3 + A"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"mask": "0001'0010 AAAA'AAAA AAAA'AAAA",
|
|
"mnemonic": "LCALL",
|
|
"format": "#0x{A:04X}",
|
|
"metadata": [
|
|
{
|
|
"type": "jump",
|
|
"data": {
|
|
"destination": "A"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"mask": "PPP1'0001 AAAA'AAAA",
|
|
"mnemonic": "ACALL",
|
|
"format": "page{P} #0x{A:04X}",
|
|
"metadata": [
|
|
{
|
|
"type": "jump",
|
|
"data": {
|
|
"destination": "P * 256 + A"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"mask": "PPP0'0001 AAAA'AAAA",
|
|
"mnemonic": "AJMP",
|
|
"format": "page{P} #0x{A:04X}",
|
|
"metadata": [
|
|
{
|
|
"type": "jump",
|
|
"data": {
|
|
"destination": "P * 256 + A"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"mask": "0000'0011",
|
|
"mnemonic": "RR",
|
|
"format": "A"
|
|
},
|
|
{
|
|
"mask": "0001'0011",
|
|
"mnemonic": "RRC",
|
|
"format": "A"
|
|
},
|
|
{
|
|
"mask": "0010'0011",
|
|
"mnemonic": "RL",
|
|
"format": "A"
|
|
},
|
|
{
|
|
"mask": "0011'0011",
|
|
"mnemonic": "RLC",
|
|
"format": "A"
|
|
},
|
|
{
|
|
"mask": "0000'0100",
|
|
"mnemonic": "INC",
|
|
"format": "A"
|
|
},
|
|
{
|
|
"mask": "0000'0101 AAAA'AAAA",
|
|
"mnemonic": "INC",
|
|
"format": "IRAM[0x{A:02X}]"
|
|
},
|
|
{
|
|
"mask": "0000'011R",
|
|
"mnemonic": "INC",
|
|
"format": "@R{R}"
|
|
},
|
|
{
|
|
"mask": "0000'1RRR",
|
|
"mnemonic": "INC",
|
|
"format": "R{R}"
|
|
},
|
|
{
|
|
"mask": "1010'0011",
|
|
"mnemonic": "INC",
|
|
"format": "DPTR"
|
|
},
|
|
{
|
|
"mask": "0001'0100",
|
|
"mnemonic": "DEC",
|
|
"format": "A"
|
|
},
|
|
{
|
|
"mask": "0001'0101 AAAA'AAAA",
|
|
"mnemonic": "DEC",
|
|
"format": "IRAM[0x{A:02X}]"
|
|
},
|
|
{
|
|
"mask": "0001'0110",
|
|
"mnemonic": "DEC",
|
|
"format": "@R0"
|
|
},
|
|
{
|
|
"mask": "0001'0111",
|
|
"mnemonic": "DEC",
|
|
"format": "@R1"
|
|
},
|
|
{
|
|
"mask": "0001'1RRR",
|
|
"mnemonic": "DEC",
|
|
"format": "R{R}"
|
|
},
|
|
{
|
|
"mask": "1110'0100",
|
|
"mnemonic": "CLR",
|
|
"format": "A"
|
|
},
|
|
{
|
|
"mask": "1100'0010 AAAA'AAAA",
|
|
"mnemonic": "CLR",
|
|
"format": "BIT[0x{A:02X}]"
|
|
},
|
|
{
|
|
"mask": "1100'0011",
|
|
"mnemonic": "CLR",
|
|
"format": "C"
|
|
},
|
|
{
|
|
"mask": "1111'0000",
|
|
"mnemonic": "MOVX",
|
|
"format": "@DPTR, A"
|
|
},
|
|
{
|
|
"mask": "1110'0000",
|
|
"mnemonic": "MOVX",
|
|
"format": "A, @DPTR"
|
|
},
|
|
{
|
|
"mask": "1111'001R",
|
|
"mnemonic": "MOVX",
|
|
"format": "@R{R}, A"
|
|
},
|
|
{
|
|
"mask": "1110'001R",
|
|
"mnemonic": "MOVX",
|
|
"format": "A, @R{R}"
|
|
},
|
|
{
|
|
"mask": "0111'011R AAAA'AAAA",
|
|
"mnemonic": "MOV",
|
|
"format": "@R{R}, #0x{A:02X}"
|
|
},
|
|
{
|
|
"mask": "0111'1RRR AAAA'AAAA",
|
|
"mnemonic": "MOV",
|
|
"format": "R{R}, #0x{A:02X}"
|
|
},
|
|
{
|
|
"mask": "1111'1RRR",
|
|
"mnemonic": "MOV",
|
|
"format": "R{R}, A"
|
|
},
|
|
{
|
|
"mask": "1110'011R",
|
|
"mnemonic": "MOV",
|
|
"format": "A, @R{R}"
|
|
},
|
|
{
|
|
"mask": "1111'011R",
|
|
"mnemonic": "MOV",
|
|
"format": "@R{R}, A"
|
|
},
|
|
{
|
|
"mask": "1110'1RRR",
|
|
"mnemonic": "MOV",
|
|
"format": "A, R{R}"
|
|
},
|
|
{
|
|
"mask": "1001'0010 AAAA'AAAA",
|
|
"mnemonic": "MOV",
|
|
"format": "BIT[0x{A:02X}], C"
|
|
},
|
|
{
|
|
"mask": "1010'0010 AAAA'AAAA",
|
|
"mnemonic": "MOV",
|
|
"format": "C, BIT[0x{A:02X}]"
|
|
},
|
|
{
|
|
"mask": "1001'0000 DDDD'DDDD DDDD'DDDD",
|
|
"mnemonic": "MOV",
|
|
"format": "DPTR, #0x{D:04X}"
|
|
},
|
|
{
|
|
"mask": "1110'0101 AAAA'AAAA",
|
|
"mnemonic": "MOV",
|
|
"format": "A, IRAM[0x{A:02X}]"
|
|
},
|
|
{
|
|
"mask": "1111'0101 AAAA'AAAA",
|
|
"mnemonic": "MOV",
|
|
"format": "IRAM[#0x{A:02X}], A"
|
|
},
|
|
{
|
|
"mask": "0111'0101 AAAA'AAAA DDDD'DDDD",
|
|
"mnemonic": "MOV",
|
|
"format": "IRAM[0x{A:02X}], #0x{D:02X}"
|
|
},
|
|
{
|
|
"mask": "1000'0101 AAAA'AAAA BBBB'BBBB",
|
|
"mnemonic": "MOV",
|
|
"format": "IRAM[0x{A:02X}], IRAM[0x{B:02X}]"
|
|
},
|
|
{
|
|
"mask": "0111'0100 DDDD'DDDD",
|
|
"mnemonic": "MOV",
|
|
"format": "A, #0x{D:02X}"
|
|
},
|
|
{
|
|
"mask": "1000'011R AAAA'AAAA",
|
|
"mnemonic": "MOV",
|
|
"format": "IRAM[0x{A:02X}], @R{R}"
|
|
},
|
|
{
|
|
"mask": "1000'1RRR AAAA'AAAA",
|
|
"mnemonic": "MOV",
|
|
"format": "IRAM[0x{A:02X}], R{R}"
|
|
},
|
|
{
|
|
"mask": "1010'011R AAAA'AAAA",
|
|
"mnemonic": "MOV",
|
|
"format": "@R{R}, IRAM[0x{A:02X}]"
|
|
},
|
|
{
|
|
"mask": "1010'1RRR AAAA'AAAA",
|
|
"mnemonic": "MOV",
|
|
"format": "R{R}, IRAM[0x{A:02X}]"
|
|
},
|
|
{
|
|
"mask": "0110'0000 AAAA'AAAA",
|
|
"mnemonic": "JZ",
|
|
"format": "PC + 0x{A:02X}",
|
|
"metadata": [
|
|
{
|
|
"type": "jump",
|
|
"data": {
|
|
"destination": "offset + 2 + A"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"mask": "0111'0000 AAAA'AAAA",
|
|
"mnemonic": "JNZ",
|
|
"format": "PC + 0x{A:02X}",
|
|
"metadata": [
|
|
{
|
|
"type": "jump",
|
|
"data": {
|
|
"destination": "offset + 2 + A"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"mask": "1001'0011",
|
|
"mnemonic": "MOVC",
|
|
"format": "A, @A+DPTR"
|
|
},
|
|
{
|
|
"mask": "1000'0011",
|
|
"mnemonic": "MOVC",
|
|
"format": "A, @A+PC"
|
|
},
|
|
{
|
|
"mask": "1101'011R",
|
|
"mnemonic": "XCHD",
|
|
"format": "A, @R{R}"
|
|
},
|
|
{
|
|
"mask": "1100'011R",
|
|
"mnemonic": "XCH",
|
|
"format": "A, @R{R}"
|
|
},
|
|
{
|
|
"mask": "1100'1RRR",
|
|
"mnemonic": "XCH",
|
|
"format": "A, R{R}"
|
|
},
|
|
{
|
|
"mask": "1100'0101 AAAA'AAAA",
|
|
"mnemonic": "XCH",
|
|
"format": "A, IRAM[0x{A:02X}]"
|
|
},
|
|
{
|
|
"mask": "0010'0010",
|
|
"mnemonic": "RET",
|
|
"format": ""
|
|
},
|
|
{
|
|
"mask": "0011'0010",
|
|
"mnemonic": "RETI",
|
|
"format": ""
|
|
},
|
|
{
|
|
"mask": "1101'0010 AAAA'AAAA",
|
|
"mnemonic": "SETB",
|
|
"format": "BIT[0x{A:02X}]"
|
|
},
|
|
{
|
|
"mask": "1101'0011",
|
|
"mnemonic": "SETB",
|
|
"format": "C"
|
|
},
|
|
{
|
|
"mask": "0101'0010 AAAA'AAAA",
|
|
"mnemonic": "ANL",
|
|
"format": "IRAM[0x{A:02X}], A"
|
|
},
|
|
{
|
|
"mask": "0101'0101 AAAA'AAAA",
|
|
"mnemonic": "ANL",
|
|
"format": "A, IRAM[0x{A:02X}]"
|
|
},
|
|
{
|
|
"mask": "0101'0011 AAAA'AAAA DDDD'DDDD",
|
|
"mnemonic": "ANL",
|
|
"format": "A, IRAM[0x{A:02X}], #0x{D:02X}"
|
|
},
|
|
{
|
|
"mask": "0101'0100 AAAA'AAAA",
|
|
"mnemonic": "ANL",
|
|
"format": "A, #0x{A:02X}"
|
|
},
|
|
{
|
|
"mask": "0101'011R",
|
|
"mnemonic": "ANL",
|
|
"format": "A, @R{R}"
|
|
},
|
|
{
|
|
"mask": "0101'1RRR",
|
|
"mnemonic": "ANL",
|
|
"format": "A, R{R}"
|
|
},
|
|
{
|
|
"mask": "1000'0010 AAAA'AAAA",
|
|
"mnemonic": "ANL",
|
|
"format": "C, BIT[0x{A:02X}]"
|
|
},
|
|
{
|
|
"mask": "1011'0000 AAAA'AAAA",
|
|
"mnemonic": "ANL",
|
|
"format": "C, /BIT[0x{A:02X}]"
|
|
},
|
|
{
|
|
"mask": "0100'0010 AAAA'AAAA",
|
|
"mnemonic": "ORL",
|
|
"format": "IRAM[0x{A:02X}], A"
|
|
},
|
|
{
|
|
"mask": "0100'0011 AAAA'AAAA DDDD'DDDD",
|
|
"mnemonic": "ORL",
|
|
"format": "IRAM[0x{A:02X}], #0x{D:02X}"
|
|
},
|
|
{
|
|
"mask": "0100'0100 DDDD'DDDD",
|
|
"mnemonic": "ORL",
|
|
"format": "A, #0x{D:02X}"
|
|
},
|
|
{
|
|
"mask": "0100'011R",
|
|
"mnemonic": "ORL",
|
|
"format": "A, @R{R}"
|
|
},
|
|
{
|
|
"mask": "0100'1RRR",
|
|
"mnemonic": "ORL",
|
|
"format": "A, R{R}"
|
|
},
|
|
{
|
|
"mask": "0100'0101 AAAA'AAAA",
|
|
"mnemonic": "ORL",
|
|
"format": "A, IRAM[0x{A:02X}]"
|
|
},
|
|
{
|
|
"mask": "0111'0010 AAAA'AAAA",
|
|
"mnemonic": "ORL",
|
|
"format": "C, BIT[0x{A:02X}]"
|
|
},
|
|
{
|
|
"mask": "1010'0000 AAAA'AAAA",
|
|
"mnemonic": "ORL",
|
|
"format": "C, /BIT[0x{A:02X}]"
|
|
},
|
|
{
|
|
"mask": "0110'0010 AAAA'AAAA",
|
|
"mnemonic": "XRL",
|
|
"format": "IRAM[0x{A:02X}], A"
|
|
},
|
|
{
|
|
"mask": "0110'0011 AAAA'AAAA DDDD'DDDD",
|
|
"mnemonic": "XRL",
|
|
"format": "IRAM[0x{A:02X}], #0x{D:02X}"
|
|
},
|
|
{
|
|
"mask": "0110'0100 DDDD'DDDD",
|
|
"mnemonic": "XRL",
|
|
"format": "A, #0x{D:02X}"
|
|
},
|
|
{
|
|
"mask": "0110'011R",
|
|
"mnemonic": "XRL",
|
|
"format": "A, @R{R}"
|
|
},
|
|
{
|
|
"mask": "0110'1RRR",
|
|
"mnemonic": "XRL",
|
|
"format": "A, R{R}"
|
|
},
|
|
{
|
|
"mask": "0110'0101 AAAA'AAAA",
|
|
"mnemonic": "XRL",
|
|
"format": "A, IRAM[0x{A:02X}]"
|
|
},
|
|
{
|
|
"mask": "0010'0100 DDDD'DDDD",
|
|
"mnemonic": "ADD",
|
|
"format": "A, #0x{D:02X}"
|
|
},
|
|
{
|
|
"mask": "0010'011R",
|
|
"mnemonic": "ADD",
|
|
"format": "A, @R{R}"
|
|
},
|
|
{
|
|
"mask": "0010'0101 AAAA'AAAA",
|
|
"mnemonic": "ADD",
|
|
"format": "A, IRAM[0x{A:02X}]"
|
|
},
|
|
{
|
|
"mask": "0011'0100 DDDD'DDDD",
|
|
"mnemonic": "ADDC",
|
|
"format": "A, #0x{D:02X}"
|
|
},
|
|
{
|
|
"mask": "0011'011R",
|
|
"mnemonic": "ADDC",
|
|
"format": "A, @R{R}"
|
|
},
|
|
{
|
|
"mask": "0011'0101 AAAA'AAAA",
|
|
"mnemonic": "ADDC",
|
|
"format": "A, IRAM[0x{A:02X}]"
|
|
},
|
|
{
|
|
"mask": "0011'1RRR",
|
|
"mnemonic": "ADDC",
|
|
"format": "A, R{R}"
|
|
},
|
|
{
|
|
"mask": "1001'0100 DDDD'DDDD",
|
|
"mnemonic": "SUBB",
|
|
"format": "A, #0x{D:02X}"
|
|
},
|
|
{
|
|
"mask": "1001'0101 IIII'IIII",
|
|
"mnemonic": "SUBB",
|
|
"format": "A, IRAM[0x{I:02X}]"
|
|
},
|
|
{
|
|
"mask": "1001'011R",
|
|
"mnemonic": "SUBB",
|
|
"format": "A, @R{R}"
|
|
},
|
|
{
|
|
"mask": "1001'1RRR",
|
|
"mnemonic": "SUBB",
|
|
"format": "A, R{R}"
|
|
},
|
|
{
|
|
"mask": "1010'0100",
|
|
"mnemonic": "MUL",
|
|
"format": "AB"
|
|
},
|
|
{
|
|
"mask": "1000'0100",
|
|
"mnemonic": "DIV",
|
|
"format": "AB"
|
|
},
|
|
{
|
|
"mask": "0010'1RRR",
|
|
"mnemonic": "ORL",
|
|
"format": "A, R{R}"
|
|
},
|
|
{
|
|
"mask": "1011'0101 IIII'IIII AAAA'AAAA",
|
|
"mnemonic": "CJNE",
|
|
"format": "A, IRAM[0x{I:02X}], PC + 0x{A:02X}",
|
|
"metadata": [
|
|
{
|
|
"type": "jump",
|
|
"data": {
|
|
"destination": "offset + 3 + A"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"mask": "1011'0100 DDDD'DDDD AAAA'AAAA",
|
|
"mnemonic": "CJNE",
|
|
"format": "A, #0x{D:02X}, PC + 0x{A:02X}",
|
|
"metadata": [
|
|
{
|
|
"type": "jump",
|
|
"data": {
|
|
"destination": "offset + 3 + A"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"mask": "1011'011R DDDD'DDDD AAAA'AAAA",
|
|
"mnemonic": "CJNE",
|
|
"format": "@R{R}, #0x{D:02X}, PC + 0x{A:02X}",
|
|
"metadata": [
|
|
{
|
|
"type": "jump",
|
|
"data": {
|
|
"destination": "offset + 3 + A"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"mask": "1011'1RRR DDDD'DDDD AAAA'AAAA",
|
|
"mnemonic": "CJNE",
|
|
"format": "R{R}, #0x{D:02X}, PC + 0x{A:02X}",
|
|
"metadata": [
|
|
{
|
|
"type": "jump",
|
|
"data": {
|
|
"destination": "offset + 3 + A"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"mask": "1101'0101 IIII'IIII AAAA'AAAA",
|
|
"mnemonic": "DJNZ",
|
|
"format": "IRAM[0x{I:02X}], PC + 0x{A:02X}",
|
|
"metadata": [
|
|
{
|
|
"type": "jump",
|
|
"data": {
|
|
"destination": "offset + 3 + A"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"mask": "1101'1RRR AAAA'AAAA",
|
|
"mnemonic": "DJNZ",
|
|
"format": "R{R}, PC + 0x{R:02X}",
|
|
"metadata": [
|
|
{
|
|
"type": "jump",
|
|
"data": {
|
|
"destination": "offset + 2 + A"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"mask": "0101'0000 AAAA'AAAA",
|
|
"mnemonic": "JNC",
|
|
"format": "PC + 0x{A:02X}",
|
|
"metadata": [
|
|
{
|
|
"type": "jump",
|
|
"data": {
|
|
"destination": "offset + 2 + A"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"mask": "1101'0000 AAAA'AAAA",
|
|
"mnemonic": "POP",
|
|
"format": "IRAM[0x{A:02X}]"
|
|
},
|
|
{
|
|
"mask": "1100'0000 AAAA'AAAA",
|
|
"mnemonic": "PUSH",
|
|
"format": "IRAM[0x{A:02X}]"
|
|
},
|
|
{
|
|
"mask": "1101'0100",
|
|
"mnemonic": "DA",
|
|
"format": ""
|
|
},
|
|
{
|
|
"mask": "1100'0100",
|
|
"mnemonic": "SWAP",
|
|
"format": "A"
|
|
},
|
|
{
|
|
"mask": "1111'0100",
|
|
"mnemonic": "CPL",
|
|
"format": "A"
|
|
},
|
|
{
|
|
"mask": "1011'0011",
|
|
"mnemonic": "CPL",
|
|
"format": "C"
|
|
},
|
|
{
|
|
"mask": "1011'0010 BBBB'BBBB",
|
|
"mnemonic": "CPL",
|
|
"format": "BIT[0x{B:02X}]"
|
|
},
|
|
{
|
|
"mask": "1010'0101",
|
|
"mnemonic": "INVALID",
|
|
"format": ""
|
|
},
|
|
{
|
|
"mask": "XXXX'XXXX",
|
|
"mnemonic": "DB",
|
|
"format": "#0x{X:02X}",
|
|
"metadata": [
|
|
{
|
|
"type": "data",
|
|
"data": {
|
|
"value": "X"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
|
|
]
|
|
} |