Есть задача - дизассемблировать прошивку для Microchip PIC16C65
Исходник в Intel HEX. Корректный прошивается, работает. Но утратили исходник. Писано точно на ассемблере ибо это где-то 2001 год.
Применял PicDisH - но он не знает PIC16C65 - сделал PIC16F877 - некорректно - обратно идентично не компилируется.
Пробую IDA - но выдает пока фигню какую-то - разобраться сложно - наворочено зело. Пока в сети внятных русскоязычных "хелпов" именно по микроконтроллерам не нашел, только Win приложения причем описан этап отладки, а не корректного дизассемблирования и настройки IDA.
Далее тут буду писать об "творческих и не очень УзбЭках". В соседней теме удалю.
Ладно вопрос по существу - поставил IDA 6.8.15.... Пробую дизассемблировать - а выдает такое :
Код:
; Reset Vector
CODE:0000
CODE:0000 ; public RESET
CODE:0000 RESET:
CODE:0000
CODE:0000 ; FUNCTION CHUNK AT CODE:0080 SIZE 00000054 BYTES
CODE:0000
CODE:0000 bsf BANK0:PCLATH, 3
CODE:0001 ; assume pclath = 8
CODE:0001 call sub_CODE_FC0
CODE:0002 bcf BANK0:PCLATH, 3
CODE:0003 ; assume pclath = 0
CODE:0003 b loc_CODE_80
CODE:0003 ; End of function RESET
CODE:0003
CODE:0004
CODE:0004 ; =============== S U B R O U T I N E =======================================
CODE:0004
CODE:0004 ; Interrupt Vector
CODE:0004
CODE:0004 ; public ISR
CODE:0004 ISR:
CODE:0004 movwf byte_DATA_20
CODE:0005 swapf BANK0:STATUS, w
CODE:0006 bsf BANK0:STATUS, RP0
CODE:0007 ; assume bank = 1
CODE:0007 movwf byte_DATA_A1
CODE:0008 bcf byte_DATA_A2, 0
CODE:0009 btfsc BANK1:PCLATH, 3
CODE:000A bsf byte_DATA_A2, 0
CODE:000B bcf BANK1:STATUS, RP0
CODE:000C ; assume bank = 0
CODE:000C movlw 6F ; *o*
CODE:000D movwf BANK0:TMR1L
CODE:000E movlw 0FB ; *v*
CODE:000F movwf BANK0:TMR1H
CODE:0010 bcf BANK0:PIR1, TMR1IF
CODE:0011 bcf BANK0:PCLATH, 3
CODE:0012 btfsc byte_DATA_6E, 6
CODE:0013 b loc_CODE_4F
CODE:0014 btfss BANK0:PORTB, RB6
CODE:0015 b loc_CODE_18
CODE:0016 bcf BANK0:PORTB, RB6
CODE:0017 b loc_CODE_4F
Что за оператор "b" ???
Как понял это оператор goto - безусловного перехода - то есть получается дизассемблер тип процессора некорректно понял ? Хотя в "шапке" корректно написано 16С65...
Еще выдает такое - хотя ему дается intel HEX файл, но он типа видит его как бинарный :
Вложение 441407
Кто хорошо разбирается - поясните, что тут я не так делаю ?
Социальные закладки