Arbitrary integer addition in x64 assembly
[ipdf/code.git] / src / tests / add_digits_test.c
1 /**
2  * Compile and linking:
3  * gcc -c add_digits.s
4  * gcc -c add_digits_test.c
5  * gcc -o add_digits_test add_digits_test.o add_digits.o
6  */
7  
8 //TODO: Move to C++
9
10 #include <stdlib.h>
11 #include <stdio.h>
12
13 int64_t add_digit(int64_t * a, int64_t * b);
14
15 int main(int argc, char ** argv)
16 {
17         int64_t s1[] = {5,6,7,0xFFFFFFFFFFFFFFFF,0};
18         int64_t s2[] = {7,1,5,1L,0};
19         
20         int size = sizeof(s1)/sizeof(int64_t);
21         
22         printf("Before adding s1 and s2:\n");
23         int i;
24         for (i = 0; i < size; ++i)
25         {
26                 printf("s1[%d] = %.16lx\t", i, s1[i]);
27                 printf("s2[%d] = %.16lx\n", i, s2[i]);
28         }
29         
30         add_digits(s1, s2, size);
31         printf("\nAfter adding s1 and s2:\n");
32         for (i = 0; i < size; ++i)
33         {
34                 printf("s1[%d] = %.16lx\t", i, s1[i]);
35                 printf("s2[%d] = %.16lx\n", i, s2[i]);
36         }
37         
38         
39 }

UCC git Repository :: git.ucc.asn.au