hello everybody,
I have 8 bit CPU, using keil cross compiler.
keil provides 32 bit operation only, they dont have 64 bit operation or long long as data type which gcc have.
Now i want 64 bit [ +, -, *, / ] operations,
Does anyone know 64 bit library for 8 bit C51 CPU.
I found 32 bit * 32 bit (long * long ) which has result of 64 bit in 2 long variable as upper and lower.
int main(void) { unsigned long m = 0xffffffff; unsigned long n = 0xffffffff; unsigned long a, b, c, d, hi, lo, temp;
a = (m & 0xffff0000UL) >> 16; b = m & 0xffffU; c = (n & 0xffff0000UL) >> 16; d = n & 0xffffU;
hi = a * c; lo = b * d;
temp = a * d; hi += temp >> 16; lo += (temp & 0x0000ffffUL) > 16; lo += (temp & 0x0000ffffUL)