Цитата(Палыч @ Apr 7 2011, 11:46)

По своему опыту знаю, что получить
хороший дизассемблерный код, по которому можно что-то
разумно судить - дело для такого объёма кода, как минимум, нескольких дней. Возможно, что Ваши проблемы как раз в тех "двух минутах"

Возможно.
Но я предлагаю Вам самому посмотреть на этот фрагмент окончания прошивки во внутренней флэш:
code:00001FC7 mov DPTR, #0xBF93
code:00001FCA mov A, RAM_73
code:00001FCC dec A
code:00001FCD
lcall code_1B4E; (см. ниже)code:00001FD0
mov R6, #0xB
code:00001FD2
mov R1, #0x58 ; 'X'
code:00001FD4
lcall code_12E0 ; (см. ниже)code:00001FD7 mov DPTR, #0xC128
code:00001FDA mov R4, RAM_59
code:00001FDC mov RAM_8, RAM_58
code:00001FDF mov B, #8 ; B-Register
code:00001FE2 lcall code_493B ; вызов кода за пределами 8К
code:00001FE5 mov R6, #0
code:00001FE7 lcall code_1CE5
code:00001FEA mov RAM_63, RAM_73
code:00001FED mov DPTR, #4
code:00001FF0 mov R1, #0x5A ; 'Z'
code:00001FF2 mov R6, #0xA
code:00001FF4 lcall code_61AE ; вызов кода за пределами 8К
code:00001FF7 mov DPTR, #0x39 ; '9'
code:00001FFA mov R6, #8
code:00001FFC mov R1, #0x68 ; 'h'
code:00001FFE lcall code_61FF ; вызов кода за пределами 8К
Из них подпрограмма, вызываемая из 1FCD (lcall code_1B4E) ---
code:00001B4E code_1B4E: code:00001B4E mov B, #0x10 ; B-Register
code:00001B51 mul AB
code:00001B52 add A, DPL ; Data Pointer, Low Byte
code:00001B54 mov DPL, A ; Data Pointer, Low Byte
code:00001B56 mov A, B ; B-Register
code:00001B58 addc A, DPH ; Data Pointer, High Byte
code:00001B5A mov DPH, A ; Data Pointer, High Byte
code:00001B5C ret
- совершенно логичный код.
Далее - подпрограмма, вызываемая из 1FD4 (lcall code_12E0) ---
code:000012E0 code_12E0: code:000012E0 clr C
code:000012E1 lcall code_12F2
code:000012E4 mov @R1, A
code:000012E5 ret
как видно, она вызывается из 1FD4, а также из 1F43, при этом вызов из 1F43 происходит с такими же, как и в случае вызова из 1FD4, инициализирующими параметрами:
mov R6, #значение
mov R1, #значение
Это точно код, нет никаких сомнений.