1 #include <stdio.h> 2 3 static signed int test[] ={ 4 0, 5 1, 6 -1, 7 0x7fffffff, 8 0x80000000, 9 0x12345678, 10 0x87654321, 11 0x55555555, 12 0x11111111, 13 0xaaaaaaaa, 14 }; 15 16 17 static unsigned long hex_to_dec(signed int num) 18 { 19 unsigned long addr = 0; 20 21 asm volatile( 22 " cvd %2,%0" 23 : "=m" (addr) : "a" (&addr) , "d" (num) : "memory"); 24 return addr; 25 } 26 27 int main() 28 { 29 int i; 30 31 for (i = 0; i < sizeof(test) / sizeof(test[0]); i++) 32 printf("%lx\n", hex_to_dec(test[i])); 33 return 0; 34 } 35