#include <stdio.h>
static signed int test[] ={
0,
1,
-1,
0x7fffffff,
0x80000000,
0x12345678,
0x87654321,
0x55555555,
0x11111111,
0xaaaaaaaa,
};
static unsigned long hex_to_dec(signed int num)
{
unsigned long addr = 0;
asm volatile(
" cvd %2,%0"
: "=m" (addr) : "a" (&addr) , "d" (num) : "memory");
return addr;
}
int main()
{
int i;
for (i = 0; i < sizeof(test) / sizeof(test[0]); i++)
printf("%lx\n", hex_to_dec(test[i]));
return 0;
}