hardware multiply muls vs c multiply

Dependencies:   mbed

Fork of c_and_asm by Chris Styles

main.cpp

Committer:
yangyulounk
Date:
2016-04-26
Revision:
3:b81f1f75db93
Parent:
2:9d258b4b0d88

File content as of revision 3:b81f1f75db93:

#include "mbed.h"
#include <stdio.h>      /* printf, fgets */
#include <stdlib.h>     /* atoi */

Timer t;
Serial pc(USBTX, USBRX);

extern "C" int mult_asm(int a, int b);
extern "C" int mult_c(int c, int d);

int main() {
    for (int k=20;k<300;k+=10){
       int COUNT=k;
    int A [COUNT], B[COUNT],C[COUNT];
    
    for (int i=0;i<COUNT;i++){
        A[i]=(int)rand()/ 1000000;
        B[i]=(int)rand()/ 1000000;
    }
    printf("Assembler: ");
    printf("%d \n",k);
    t.start();

    for (int i=0;i<COUNT;i++){
    C[i]=mult_asm(A[i], B[i]);
    }
    t.stop();
    for (int i=0;i<COUNT;i++){
       printf("%d ",C[i]);
    }

    printf("\nThe time taken was %f seconds\n", t.read());

    t.reset();
    
    printf("C        :");
    t.start();

    for (int i=0;i<COUNT;i++){
    C[i]=mult_c(A[i], B[i]);
    }
    t.stop();

    for (int i=0;i<COUNT;i++){
       printf("%d ",C[i]);
    }
    printf("\nThe time taken was %f seconds\n\n", t.read());
     }
}