int mulff(int a, int b)
{
int c;
asm volatile
(
"smull r7,r8,%1,%2\n" // {r2,r3} = r0*r1
"mov %0, r7\n" // return the high 32 bits, hopefully
: "=r"(c) // %0 = output value from the function
: "r"(a), "r"(b) // inputs: %1, %2
: "r7", "r8" // registers we clobber
);
return c...