[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
размером в 64кБ, как оказалось она написана на ICC8051. Слава богу что в этом пакете можно было извлечь библиотечные функции. Сопоставив с кодом можно было как минимум на 50-80%(от к-ва переменных) определить типы переменных. В остальных ситуациях как правило помогали библиотечные функции например ?L_NOT_LO1 и ?F_CMP_L_02
например:
MOV R0,#1;
CLR A
MOV R1,A
MOV R2,A
MOV R3,A
MOV R4,A
MOV R5,A
MOV R6,A
MOV R7,A
MOV A,#07H
CALL F_CMP_L002
JNZ L38D4
-------
где в A передается признак операции и имеет следующее значение:
операция signed unsigned
< #0AH #OBH
<= #0EH #OFH
== #0DH #ODH
!= #05H #O5H
> #06H #O7H
>= #02H #O3H
отсюда
if ((unsigned long)R0..R3 > (unsigned long)R4..R7)
if(1>0)
Что я могу посоветовать Вам, в этом деле, напишите свои процедуры, начиная с простых
(char)с = 123;
(int)i = 123;
(float)f = 123.0;
f=c+i;
a>0?-i:i;
E-mail: info@telesys.ru