Let me know how I did on my homework.
char s1[18] = "Dry, Water Me :( ";
char s2[18] = "New middle string";
char s3[18] = "Wet, Do Not Water";
// lower than 3 displays the dry string,
// between 3 and 5 displays a new middle string,
// and lastly above 7 will display the wet string?
char* test(uint8_t val)
{
asm volatile (
"cpi %0, 3 \n"
"brlo 1f \n"
"cpi %0, 8 \n"
"brsh 2f \n"
"ldi r24, lo8(s2) \n"
"ldi r25, hi8(s2) \n"
"rjmp 3f \n"
"1: ldi r24, lo8(s1) \n"
"ldi r25, hi8(s1) \n"
"rjmp 3f \n"
"2: ldi r24, lo8(s3) \n"
"ldi r25, hi8(s3) \n"
"3: \n"
: : "r" (val), "e" (s1), "e" (s2), "e" (s3)
);
}
void setup() {
Serial.begin(9600);
Serial.println(test(1));
Serial.println(test(4));
Serial.println(test(8));
}
void loop() { }
note: per your instructions, what should happen when val = 6?