我从 PIC16F88 中提取了一个 .hex 文件。例如:
:020000040000FA
:100000008F3083160F0570388F009B0183129F017C
:1000100083169F0107309C0005108312051483127C
:1000200003131730A0006730A1002930A2000A1284
:100030008A11A20B17280A128A11A10B15280A127D
:100040008A11A00B13280510831203131730A00088
:100050006730A1002930A2000A128A11A20B2C28B5
:100060000A128A11A10B2A280A128A11A00B282829
:020070000D2859
:02400E00782F09
:02401000FF3F70
:00000001FF
在 MPLAB 中,我导入了这个 .hex 文件并找到了反汇编代码,在这种情况下:
1 000 308F MOVLW 0x8f
2 001 1683 BSF 0x3, 0x5
3 002 050F ANDWF 0xf, W
4 003 3870 IORLW 0x70
5 004 008F MOVWF 0xf
6 005 019B CLRF 0x1b
7 006 1283 BCF 0x3, 0x5
8 007 019F CLRF 0x1f
9 008 1683 BSF 0x3, 0x5
10 009 019F CLRF 0x1f
11 00A 3007 MOVLW 0x7
12 00B 009C MOVWF 0x1c
13 00C 1005 BCF 0x5, 0
14 00D 1283 BCF 0x3, 0x5
15 00E 1405 BSF 0x5, 0
16 00F 1283 BCF 0x3, 0x5
17 010 1303 BCF 0x3, 0x6
18 011 3017 MOVLW 0x17
19 012 00A0 MOVWF 0x20
20 013 3067 MOVLW 0x67
21 014 00A1 MOVWF 0x21
22 015 3029 MOVLW 0x29
23 016 00A2 MOVWF 0x22
24 017 120A BCF 0xa, 0x4
25 018 118A BCF 0xa, 0x3
26 019 0BA2 DECFSZ 0x22, F
27 01A 2817 GOTO 0x17
28 01B 120A BCF 0xa, 0x4
29 01C 118A BCF 0xa, 0x3
30 01D 0BA1 DECFSZ 0x21, F
31 01E 2815 GOTO 0x15
32 01F 120A BCF 0xa, 0x4
33 020 118A BCF 0xa, 0x3
34 021 0BA0 DECFSZ 0x20, F
35 022 2813 GOTO 0x13
36 023 1005 BCF 0x5, 0
37 024 1283 BCF 0x3, 0x5
38 025 1303 BCF 0x3, 0x6
39 026 3017 MOVLW 0x17
40 027 00A0 MOVWF 0x20
41 028 3067 MOVLW 0x67
42 029 00A1 MOVWF 0x21
43 02A 3029 MOVLW 0x29
44 02B 00A2 MOVWF 0x22
45 02C 120A BCF 0xa, 0x4
46 02D 118A BCF 0xa, 0x3
47 02E 0BA2 DECFSZ 0x22, F
48 02F 282C GOTO 0x2c
49 030 120A BCF 0xa, 0x4
50 031 118A BCF 0xa, 0x3
51 032 0BA1 DECFSZ 0x21, F
52 033 282A GOTO 0x2a
53 034 120A BCF 0xa, 0x4
54 035 118A BCF 0xa, 0x3
55 036 0BA0 DECFSZ 0x20, F
56 037 2828 GOTO 0x28
57 038 280D GOTO 0xd
现在我想知道这段代码是用什么编译器编译的。我怎样才能做到这一点?我正在寻找一般方法来检查哪些编译器制作了一些 ASM 代码。列出的代码只是一个例子。