#include<stdio.h>
#include<stdlib.h>
// Uncomment this when you copy this code to run it on HW
/*#define RUN_ON_HW
#ifdef RUN_ON_HW
#define Serial1 Serial
#endif*/
void myPrint(char* fnName, unsigned int result);
// Define external assembly function
extern "C" {
unsigned int my_asm_fn(int a, int b);
}
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
Serial1.begin(9600);
pinMode(LED_BUILTIN, OUTPUT);
/* unsigned int a;
unsigned int b;*/
}
int main()
{
int a,b;
printf("Enter a value: ");
scanf("%d",&a);
printf("%d",a);
printf("\nEnter another value: ");
scanf("%d",&b);
printf("%d",b);
printf("\nThe smallest no is:",a);
}
// the loop function runs over and over again forever
void loop() {
int a;
int b;
int asm_ret_val;
asm_ret_val = my_asm_fn(a,b);
myPrint("my_asm_fn()",asm_ret_val);
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
} // end of loop()
void myPrint(char* fnName, unsigned int printVal){
Serial1.print("The value returned from the assembly fn ");
Serial1.print(fnName);
Serial1.print(" : "); Serial1.println(printVal);
Serial1.print("The value returned from the assembly fn ");
Serial1.print(fnName);
Serial1.print(" in Hex: 0x"); Serial1.println(printVal, HEX);
} // myPrint(char*, int)