print DISASM_H "#ifndef DISASM_H\n";
print DISASM_H "#define DISASM_H 1\n\n";
+# Column indexes in opcodes.lst table
+use constant COL_OPCODE => 0;
+use constant COL_INSTR => 1;
+use constant COL_ARGS => 2;
+
+use constant COL_COUNT_NO_ARGS => 4;
+
$nbinst=0;
$nbaddr=0;
$nbargs=0;
$instnumb=0;
-$ligne=<OPCODELST>;
-$ligne=<OPCODELST>;
+# Discard first two lines, which are comments
+$ligne = <OPCODELST>;
+$ligne = <OPCODELST>;
+
while($ligne=<OPCODELST>) {
chop $ligne;
- if (length $ligne < 2) {next;}
- @wordlist=split ' ',$ligne;
- $nbword=@wordlist;
- $instruction=$wordlist[2];
- for($i=3;$i<($nbword-2);$i++) {$instruction="$instruction $wordlist[$i]";}
-
- $a_instruction[$instnumb]=$instruction;
- $a_bytes[$instnumb]=$wordlist[$nbword-2];
- $a_cycles[$instnumb]=$wordlist[$nbword-1];
- $a_opcodehex[$instnumb]=$wordlist[1];
- $a_opcodebin[$instnumb]=$wordlist[0];
-
- $instfunction[$instnumb]="CPU8051::OP_$wordlist[1]";
-
- $instargs[$instnumb << 2]=$instargs[($instnumb << 2) + 1]=$instargs[($instnumb << 2) + 2]=$instargs[($instnumb << 2) + 3]=0;
- if ($nbword > 5) {
- @argslist=split /\,/,$wordlist[3];
- $argslistsize=@argslist;
- $instargs[$instnumb << 2]=$argslistsize;
- for ($i=0;$i<$argslistsize;$i++) {
+
+ if (length $ligne < 2) {
+ next;
+ }
+
+ @wordlist = split ' ',$ligne;
+ $nbword = @wordlist;
+ $instruction = $wordlist[COL_INSTR];
+
+ for ($i = (COL_INSTR + 1); $i < ($nbword - 2); $i++) {
+ $instruction = "$instruction $wordlist[$i]";
+ }
+
+ $a_instruction[$instnumb] = $instruction;
+ $a_bytes[$instnumb] = $wordlist[$nbword - 2];
+ $a_cycles[$instnumb] = $wordlist[$nbword - 1];
+ $a_opcodehex[$instnumb] = $wordlist[COL_OPCODE];
+
+ $instfunction[$instnumb]="CPU8051::OP_$wordlist[COL_OPCODE]";
+
+ $instargs[$instnumb << 2] = $instargs[($instnumb << 2) + 1] =
+ $instargs[($instnumb << 2) + 2] = $instargs[($instnumb << 2) + 3] = 0;
+
+ if ($nbword > COL_COUNT_NO_ARGS) {
+ @argslist = split /\,/,$wordlist[COL_ARGS];
+ $argslistsize = @argslist;
+ $instargs[$instnumb << 2] = $argslistsize;
+ for ($i = 0; $i < $argslistsize; $i++) {
if (not exists $argstypes{$argslist[$i]}) {
- $argstypes[$nbargs]=$argslist[$i];
- $argstypes{$argslist[$i]}=$nbargs++;
+ $argstypes[$nbargs] = $argslist[$i];
+ $argstypes{$argslist[$i]} = $nbargs++;
}
- $instargs[($instnumb << 2) + $i + 1]=$argstypes{$argslist[$i]};
+ $instargs[($instnumb << 2) + $i + 1] = $argstypes{$argslist[$i]};
}
}
- if (not exists $insttext{$wordlist[2]}) {
- $insttext[$nbinst]=$wordlist[2];
- $insttext{$wordlist[2]}=$nbinst++;
+ if (not exists $insttext{$wordlist[COL_INSTR]}) {
+ $insttext[$nbinst] = $wordlist[COL_INSTR];
+ $insttext{$wordlist[COL_INSTR]} = $nbinst++;
}
- $insttype[$instnumb]=$insttext{$wordlist[2]};
+ $insttype[$instnumb] = $insttext{$wordlist[COL_INSTR]};
- if ( not exists $addrmode{$wordlist[3]}) {
- $addrmode[$nbaddr]=$wordlist[3];
- $addrmode{$wordlist[3]}=$nbaddr++;
+ if ( not exists $addrmode{$wordlist[COL_ARGS]}) {
+ $addrmode[$nbaddr] = $wordlist[COL_ARGS];
+ $addrmode{$wordlist[COL_ARGS]} = $nbaddr++;
}
- $nbbytes[$instnumb]=$wordlist[$nbword-2];
+ $nbbytes[$instnumb] = $wordlist[$nbword - 2];
- $instaddr[$instnumb]=$addrmode{$wordlist[3]};
+ $instaddr[$instnumb] = $addrmode{$wordlist[COL_ARGS]};
$instnumb++;
}
+
# ------------------------------------------------------------------------------
print DISASM_H "/*\n";
print DISASM_H " * For all 256 opcodes, the value in this table gives the instruction type\n";
-Opcode(bin) Opcode Instruction Bytes Cycles
---------------------------------------------------------------
-00000000 00 NOP 1 1
-00000001 01 AJMP addr11 2 2
-00000010 02 LJMP addr16 3 2
-00000011 03 RR A 1 1
-00000100 04 INC A 1 1
-00000101 05 INC direct 2 1
-00000110 06 INC @R0 1 1
-00000111 07 INC @R1 1 1
-00001000 08 INC R0 1 1
-00001001 09 INC R1 1 1
-00001010 0A INC R2 1 1
-00001011 0B INC R3 1 1
-00001100 0C INC R4 1 1
-00001101 0D INC R5 1 1
-00001110 0E INC R6 1 1
-00001111 0F INC R7 1 1
-00010000 10 JBC bitaddr,reladdr 3 2
-00010001 11 ACALL addr11 2 2
-00010010 12 LCALL addr16 3 2
-00010011 13 RRC A 1 1
-00010100 14 DEC A 1 1
-00010101 15 DEC direct 2 1
-00010110 16 DEC @R0 1 1
-00010111 17 DEC @R1 1 1
-00011000 18 DEC R0 1 1
-00011001 19 DEC R1 1 1
-00011010 1A DEC R2 1 1
-00011011 1B DEC R3 1 1
-00011100 1C DEC R4 1 1
-00011101 1D DEC R5 1 1
-00011110 1E DEC R6 1 1
-00011111 1F DEC R7 1 1
-00100000 20 JB bitaddr,reladdr 3 2
-00100001 21 AJMP addr11 2 2
-00100010 22 RET 1 2
-00100011 23 RL A 1 1
-00100100 24 ADD A,#data 2 1
-00100101 25 ADD A,direct 2 1
-00100110 26 ADD A,@R0 1 1
-00100111 27 ADD A,@R1 1 1
-00101000 28 ADD A,R0 1 1
-00101001 29 ADD A,R1 1 1
-00101010 2A ADD A,R2 1 1
-00101011 2B ADD A,R3 1 1
-00101100 2C ADD A,R4 1 1
-00101101 2D ADD A,R5 1 1
-00101110 2E ADD A,R6 1 1
-00101111 2F ADD A,R7 1 1
-00110000 30 JNB bitaddr,reladdr 3 2
-00110001 31 ACALL addr11 2 2
-00110010 32 RETI 1 2
-00110011 33 RLC A 1 1
-00110100 34 ADDC A,#data 2 1
-00110101 35 ADDC A,direct 2 1
-00110110 36 ADDC A,@R0 1 1
-00110111 37 ADDC A,@R1 1 1
-00111000 38 ADDC A,R0 1 1
-00111001 39 ADDC A,R1 1 1
-00111010 3A ADDC A,R2 1 1
-00111011 3B ADDC A,R3 1 1
-00111100 3C ADDC A,R4 1 1
-00111101 3D ADDC A,R5 1 1
-00111110 3E ADDC A,R6 1 1
-00111111 3F ADDC A,R7 1 1
-01000000 40 JC reladdr 2 2
-01000001 41 AJMP addr11 2 2
-01000010 42 ORL direct,A 2 1
-01000011 43 ORL direct,#data 3 2
-01000100 44 ORL A,#data 2 1
-01000101 45 ORL A,direct 2 1
-01000110 46 ORL A,@R0 1 1
-01000111 47 ORL A,@R1 1 1
-01001000 48 ORL A,R0 1 1
-01001001 49 ORL A,R1 1 1
-01001010 4A ORL A,R2 1 1
-01001011 4B ORL A,R3 1 1
-01001100 4C ORL A,R4 1 1
-01001101 4D ORL A,R5 1 1
-01001110 4E ORL A,R6 1 1
-01001111 4F ORL A,R7 1 1
-01010000 50 JNC reladdr 2 2
-01010001 51 ACALL addr11 2 2
-01010010 52 ANL direct,A 2 1
-01010011 53 ANL direct,#data 3 2
-01010100 54 ANL A,#data 2 1
-01010101 55 ANL A,direct 2 1
-01010110 56 ANL A,@R0 1 1
-01010111 57 ANL A,@R1 1 1
-01011000 58 ANL A,R0 1 1
-01011001 59 ANL A,R1 1 1
-01011010 5A ANL A,R2 1 1
-01011011 5B ANL A,R3 1 1
-01011100 5C ANL A,R4 1 1
-01011101 5D ANL A,R5 1 1
-01011110 5E ANL A,R6 1 1
-01011111 5F ANL A,R7 1 1
-01100000 60 JZ reladdr 2 2
-01100001 61 AJMP addr11 2 2
-01100010 62 XRL direct,A 2 1
-01100011 63 XRL direct,#data 3 2
-01100100 64 XRL A,#data 2 1
-01100101 65 XRL A,direct 2 1
-01100110 66 XRL A,@R0 1 1
-01100111 67 XRL A,@R1 1 1
-01101000 68 XRL A,R0 1 1
-01101001 69 XRL A,R1 1 1
-01101010 6A XRL A,R2 1 1
-01101011 6B XRL A,R3 1 1
-01101100 6C XRL A,R4 1 1
-01101101 6D XRL A,R5 1 1
-01101110 6E XRL A,R6 1 1
-01101111 6F XRL A,R7 1 1
-01110000 70 JNZ reladdr 2 2
-01110001 71 ACALL addr11 2 2
-01110010 72 ORL C,bitaddr 2 2
-01110011 73 JMP @A+DPTR 1 2
-01110100 74 MOV A,#data 2 1
-01110101 75 MOV direct,#data 3 2
-01110110 76 MOV @R0,#data 2 1
-01110111 77 MOV @R1,#data 2 1
-01111000 78 MOV R0,#data 2 1
-01111001 79 MOV R1,#data 2 1
-01111010 7A MOV R2,#data 2 1
-01111011 7B MOV R3,#data 2 1
-01111100 7C MOV R4,#data 2 1
-01111101 7D MOV R5,#data 2 1
-01111110 7E MOV R6,#data 2 1
-01111111 7F MOV R7,#data 2 1
-10000000 80 SJMP reladdr 2 2
-10000001 81 AJMP addr11 2 2
-10000010 82 ANL C,bitaddr 2 1
-10000011 83 MOVC A,@A+PC 1 1
-10000100 84 DIV AB 1 4
-10000101 85 MOV direct,direct 3 1
-10000110 86 MOV direct,@R0 2 2
-10000111 87 MOV direct,@R1 2 2
-10001000 88 MOV direct,R0 2 2
-10001001 89 MOV direct,R1 2 2
-10001010 8A MOV direct,R2 2 2
-10001011 8B MOV direct,R3 2 2
-10001100 8C MOV direct,R4 2 2
-10001101 8D MOV direct,R5 2 2
-10001110 8E MOV direct,R6 2 2
-10001111 8F MOV direct,R7 2 2
-10010000 90 MOV DPTR,#data16 3 2
-10010001 91 ACALL addr11 2 2
-10010010 92 MOV bitaddr,C 2 2
-10010011 93 MOVC A,@A+DPTR 1 2
-10010100 94 SUBB A,#data 2 1
-10010101 95 SUBB A,direct 2 1
-10010110 96 SUBB A,@R0 1 1
-10010111 97 SUBB A,@R1 1 1
-10011000 98 SUBB A,R0 1 1
-10011001 99 SUBB A,R1 1 1
-10011010 9A SUBB A,R2 1 1
-10011011 9B SUBB A,R3 1 1
-10011100 9C SUBB A,R4 1 1
-10011101 9D SUBB A,R5 1 1
-10011110 9E SUBB A,R6 1 1
-10011111 9F SUBB A,R7 1 1
-10100000 A0 ORL C,/bitaddr 2 1
-10100001 A1 AJMP addr11 2 2
-10100010 A2 MOV C,bitaddr 2 1
-10100011 A3 INC DPTR 1 2
-10100100 A4 MUL AB 1 4
-10100101 A5 INVALID 1 1
-10100110 A6 MOV @R0,direct 2 2
-10100111 A7 MOV @R1,direct 2 2
-10101000 A8 MOV R0,direct 2 2
-10101001 A9 MOV R1,direct 2 2
-10101010 AA MOV R2,direct 2 2
-10101011 AB MOV R3,direct 2 2
-10101100 AC MOV R4,direct 2 2
-10101101 AD MOV R5,direct 2 2
-10101110 AE MOV R6,direct 2 2
-10101111 AF MOV R7,direct 2 2
-10110000 B0 ANL C,/bitaddr 2 1
-10110001 B1 ACALL addr11 2 2
-10110010 B2 CPL bitaddr 2 1
-10110011 B3 CPL C 1 1
-10110100 B4 CJNE A,#data,reladdr 3 2
-10110101 B5 CJNE A,direct,reladdr 3 2
-10110110 B6 CJNE @R0,#data,reladdr 3 2
-10110111 B7 CJNE @R1,#data,reladdr 3 2
-10111000 B8 CJNE R0,#data,reladdr 3 2
-10111001 B9 CJNE R1,#data,reladdr 3 2
-10111010 BA CJNE R2,#data,reladdr 3 2
-10111011 BB CJNE R3,#data,reladdr 3 2
-10111100 BC CJNE R4,#data,reladdr 3 2
-10111101 BD CJNE R5,#data,reladdr 3 2
-10111110 BE CJNE R6,#data,reladdr 3 2
-10111111 BF CJNE R7,#data,reladdr 3 2
-11000000 C0 PUSH direct 2 2
-11000001 C1 AJMP addr11 2 2
-11000010 C2 CLR bitaddr 2 1
-11000011 C3 CLR C 1 1
-11000100 C4 SWAP A 1 1
-11000101 C5 XCH A,direct 2 1
-11000110 C6 XCH A,@R0 1 1
-11000111 C7 XCH A,@R1 1 1
-11001000 C8 XCH A,R0 1 1
-11001001 C9 XCH A,R1 1 1
-11001010 CA XCH A,R2 1 1
-11001011 CB XCH A,R3 1 1
-11001100 CC XCH A,R4 1 1
-11001101 CD XCH A,R5 1 1
-11001110 CE XCH A,R6 1 1
-11001111 CF XCH A,R7 1 1
-11010000 D0 POP direct 2 2
-11010001 D1 ACALL addr11 2 2
-11010010 D2 SETB bitaddr 2 1
-11010011 D3 SETB C 1 1
-11010100 D4 DA A 1 1
-11010101 D5 DJNZ direct,reladdr 3 2
-11010110 D6 XCHD A,@R0 1 1
-11010111 D7 XCHD A,@R1 1 1
-11011000 D8 DJNZ R0,reladdr 2 2
-11011001 D9 DJNZ R1,reladdr 2 2
-11011010 DA DJNZ R2,reladdr 2 2
-11011011 DB DJNZ R3,reladdr 2 2
-11011100 DC DJNZ R4,reladdr 2 2
-11011101 DD DJNZ R5,reladdr 2 2
-11011110 DE DJNZ R6,reladdr 2 2
-11011111 DF DJNZ R7,reladdr 2 2
-11100000 E0 MOVX A,@DPTR 1 2
-11100001 E1 AJMP addr11 2 2
-11100010 E2 MOVX A,@R0 1 2
-11100011 E3 MOVX A,@R1 1 2
-11100100 E4 CLR A 1 1
-11100101 E5 MOV A,direct 2 1
-11100110 E6 MOV A,@R0 1 1
-11100111 E7 MOV A,@R1 1 1
-11101000 E8 MOV A,R0 1 1
-11101001 E9 MOV A,R1 1 1
-11101010 EA MOV A,R2 1 1
-11101011 EB MOV A,R3 1 1
-11101100 EC MOV A,R4 1 1
-11101101 ED MOV A,R5 1 1
-11101110 EE MOV A,R6 1 1
-11101111 EF MOV A,R7 1 1
-11110000 F0 MOVX @DPTR,A 1 2
-11110001 F1 ACALL addr11 2 2
-11110010 F2 MOVX @R0,A 1 2
-11110011 F3 MOVX @R1,A 1 2
-11110100 F4 CPL A 1 1
-11110101 F5 MOV direct,A 2 1
-11110110 F6 MOV @R0,A 1 1
-11110111 F7 MOV @R1,A 1 1
-11111000 F8 MOV R0,A 1 1
-11111001 F9 MOV R1,A 1 1
-11111010 FA MOV R2,A 1 1
-11111011 FB MOV R3,A 1 1
-11111100 FC MOV R4,A 1 1
-11111101 FD MOV R5,A 1 1
-11111110 FE MOV R6,A 1 1
-11111111 FF MOV R7,A 1 1
+Opcode Instruction Bytes Cycles
+----------------------------------------------
+00 NOP 1 1
+01 AJMP addr11 2 2
+02 LJMP addr16 3 2
+03 RR A 1 1
+04 INC A 1 1
+05 INC direct 2 1
+06 INC @R0 1 1
+07 INC @R1 1 1
+08 INC R0 1 1
+09 INC R1 1 1
+0A INC R2 1 1
+0B INC R3 1 1
+0C INC R4 1 1
+0D INC R5 1 1
+0E INC R6 1 1
+0F INC R7 1 1
+10 JBC bitaddr,reladdr 3 2
+11 ACALL addr11 2 2
+12 LCALL addr16 3 2
+13 RRC A 1 1
+14 DEC A 1 1
+15 DEC direct 2 1
+16 DEC @R0 1 1
+17 DEC @R1 1 1
+18 DEC R0 1 1
+19 DEC R1 1 1
+1A DEC R2 1 1
+1B DEC R3 1 1
+1C DEC R4 1 1
+1D DEC R5 1 1
+1E DEC R6 1 1
+1F DEC R7 1 1
+20 JB bitaddr,reladdr 3 2
+21 AJMP addr11 2 2
+22 RET 1 2
+23 RL A 1 1
+24 ADD A,#data 2 1
+25 ADD A,direct 2 1
+26 ADD A,@R0 1 1
+27 ADD A,@R1 1 1
+28 ADD A,R0 1 1
+29 ADD A,R1 1 1
+2A ADD A,R2 1 1
+2B ADD A,R3 1 1
+2C ADD A,R4 1 1
+2D ADD A,R5 1 1
+2E ADD A,R6 1 1
+2F ADD A,R7 1 1
+30 JNB bitaddr,reladdr 3 2
+31 ACALL addr11 2 2
+32 RETI 1 2
+33 RLC A 1 1
+34 ADDC A,#data 2 1
+35 ADDC A,direct 2 1
+36 ADDC A,@R0 1 1
+37 ADDC A,@R1 1 1
+38 ADDC A,R0 1 1
+39 ADDC A,R1 1 1
+3A ADDC A,R2 1 1
+3B ADDC A,R3 1 1
+3C ADDC A,R4 1 1
+3D ADDC A,R5 1 1
+3E ADDC A,R6 1 1
+3F ADDC A,R7 1 1
+40 JC reladdr 2 2
+41 AJMP addr11 2 2
+42 ORL direct,A 2 1
+43 ORL direct,#data 3 2
+44 ORL A,#data 2 1
+45 ORL A,direct 2 1
+46 ORL A,@R0 1 1
+47 ORL A,@R1 1 1
+48 ORL A,R0 1 1
+49 ORL A,R1 1 1
+4A ORL A,R2 1 1
+4B ORL A,R3 1 1
+4C ORL A,R4 1 1
+4D ORL A,R5 1 1
+4E ORL A,R6 1 1
+4F ORL A,R7 1 1
+50 JNC reladdr 2 2
+51 ACALL addr11 2 2
+52 ANL direct,A 2 1
+53 ANL direct,#data 3 2
+54 ANL A,#data 2 1
+55 ANL A,direct 2 1
+56 ANL A,@R0 1 1
+57 ANL A,@R1 1 1
+58 ANL A,R0 1 1
+59 ANL A,R1 1 1
+5A ANL A,R2 1 1
+5B ANL A,R3 1 1
+5C ANL A,R4 1 1
+5D ANL A,R5 1 1
+5E ANL A,R6 1 1
+5F ANL A,R7 1 1
+60 JZ reladdr 2 2
+61 AJMP addr11 2 2
+62 XRL direct,A 2 1
+63 XRL direct,#data 3 2
+64 XRL A,#data 2 1
+65 XRL A,direct 2 1
+66 XRL A,@R0 1 1
+67 XRL A,@R1 1 1
+68 XRL A,R0 1 1
+69 XRL A,R1 1 1
+6A XRL A,R2 1 1
+6B XRL A,R3 1 1
+6C XRL A,R4 1 1
+6D XRL A,R5 1 1
+6E XRL A,R6 1 1
+6F XRL A,R7 1 1
+70 JNZ reladdr 2 2
+71 ACALL addr11 2 2
+72 ORL C,bitaddr 2 2
+73 JMP @A+DPTR 1 2
+74 MOV A,#data 2 1
+75 MOV direct,#data 3 2
+76 MOV @R0,#data 2 1
+77 MOV @R1,#data 2 1
+78 MOV R0,#data 2 1
+79 MOV R1,#data 2 1
+7A MOV R2,#data 2 1
+7B MOV R3,#data 2 1
+7C MOV R4,#data 2 1
+7D MOV R5,#data 2 1
+7E MOV R6,#data 2 1
+7F MOV R7,#data 2 1
+80 SJMP reladdr 2 2
+81 AJMP addr11 2 2
+82 ANL C,bitaddr 2 1
+83 MOVC A,@A+PC 1 1
+84 DIV AB 1 4
+85 MOV direct,direct 3 1
+86 MOV direct,@R0 2 2
+87 MOV direct,@R1 2 2
+88 MOV direct,R0 2 2
+89 MOV direct,R1 2 2
+8A MOV direct,R2 2 2
+8B MOV direct,R3 2 2
+8C MOV direct,R4 2 2
+8D MOV direct,R5 2 2
+8E MOV direct,R6 2 2
+8F MOV direct,R7 2 2
+90 MOV DPTR,#data16 3 2
+91 ACALL addr11 2 2
+92 MOV bitaddr,C 2 2
+93 MOVC A,@A+DPTR 1 2
+94 SUBB A,#data 2 1
+95 SUBB A,direct 2 1
+96 SUBB A,@R0 1 1
+97 SUBB A,@R1 1 1
+98 SUBB A,R0 1 1
+99 SUBB A,R1 1 1
+9A SUBB A,R2 1 1
+9B SUBB A,R3 1 1
+9C SUBB A,R4 1 1
+9D SUBB A,R5 1 1
+9E SUBB A,R6 1 1
+9F SUBB A,R7 1 1
+A0 ORL C,/bitaddr 2 1
+A1 AJMP addr11 2 2
+A2 MOV C,bitaddr 2 1
+A3 INC DPTR 1 2
+A4 MUL AB 1 4
+A5 INVALID 1 1
+A6 MOV @R0,direct 2 2
+A7 MOV @R1,direct 2 2
+A8 MOV R0,direct 2 2
+A9 MOV R1,direct 2 2
+AA MOV R2,direct 2 2
+AB MOV R3,direct 2 2
+AC MOV R4,direct 2 2
+AD MOV R5,direct 2 2
+AE MOV R6,direct 2 2
+AF MOV R7,direct 2 2
+B0 ANL C,/bitaddr 2 1
+B1 ACALL addr11 2 2
+B2 CPL bitaddr 2 1
+B3 CPL C 1 1
+B4 CJNE A,#data,reladdr 3 2
+B5 CJNE A,direct,reladdr 3 2
+B6 CJNE @R0,#data,reladdr 3 2
+B7 CJNE @R1,#data,reladdr 3 2
+B8 CJNE R0,#data,reladdr 3 2
+B9 CJNE R1,#data,reladdr 3 2
+BA CJNE R2,#data,reladdr 3 2
+BB CJNE R3,#data,reladdr 3 2
+BC CJNE R4,#data,reladdr 3 2
+BD CJNE R5,#data,reladdr 3 2
+BE CJNE R6,#data,reladdr 3 2
+BF CJNE R7,#data,reladdr 3 2
+C0 PUSH direct 2 2
+C1 AJMP addr11 2 2
+C2 CLR bitaddr 2 1
+C3 CLR C 1 1
+C4 SWAP A 1 1
+C5 XCH A,direct 2 1
+C6 XCH A,@R0 1 1
+C7 XCH A,@R1 1 1
+C8 XCH A,R0 1 1
+C9 XCH A,R1 1 1
+CA XCH A,R2 1 1
+CB XCH A,R3 1 1
+CC XCH A,R4 1 1
+CD XCH A,R5 1 1
+CE XCH A,R6 1 1
+CF XCH A,R7 1 1
+D0 POP direct 2 2
+D1 ACALL addr11 2 2
+D2 SETB bitaddr 2 1
+D3 SETB C 1 1
+D4 DA A 1 1
+D5 DJNZ direct,reladdr 3 2
+D6 XCHD A,@R0 1 1
+D7 XCHD A,@R1 1 1
+D8 DJNZ R0,reladdr 2 2
+D9 DJNZ R1,reladdr 2 2
+DA DJNZ R2,reladdr 2 2
+DB DJNZ R3,reladdr 2 2
+DC DJNZ R4,reladdr 2 2
+DD DJNZ R5,reladdr 2 2
+DE DJNZ R6,reladdr 2 2
+DF DJNZ R7,reladdr 2 2
+E0 MOVX A,@DPTR 1 2
+E1 AJMP addr11 2 2
+E2 MOVX A,@R0 1 2
+E3 MOVX A,@R1 1 2
+E4 CLR A 1 1
+E5 MOV A,direct 2 1
+E6 MOV A,@R0 1 1
+E7 MOV A,@R1 1 1
+E8 MOV A,R0 1 1
+E9 MOV A,R1 1 1
+EA MOV A,R2 1 1
+EB MOV A,R3 1 1
+EC MOV A,R4 1 1
+ED MOV A,R5 1 1
+EE MOV A,R6 1 1
+EF MOV A,R7 1 1
+F0 MOVX @DPTR,A 1 2
+F1 ACALL addr11 2 2
+F2 MOVX @R0,A 1 2
+F3 MOVX @R1,A 1 2
+F4 CPL A 1 1
+F5 MOV direct,A 2 1
+F6 MOV @R0,A 1 1
+F7 MOV @R1,A 1 1
+F8 MOV R0,A 1 1
+F9 MOV R1,A 1 1
+FA MOV R2,A 1 1
+FB MOV R3,A 1 1
+FC MOV R4,A 1 1
+FD MOV R5,A 1 1
+FE MOV R6,A 1 1
+FF MOV R7,A 1 1