_sys_printf("%x ", *(stack + 0)); \
_sys_printf("%x ", *(stack + 1)); \
_sys_printf("%x ", *(stack + 2)); \
_sys_printf("%x ", *(stack + 3)); \
_sys_printf("%x ", *(stack + 4)); \
_sys_printf("%x ", *(stack + 5)); \
_sys_printf("%x ", *(stack + 6)); \
_sys_printf("%x ", *(stack + 7)); \
_sys_printf("%x ", *(stack + 8)); \

を、

unsigned int value[9];
value[0] = *(stack + 0);
value[1] = *(stack + 1);
...

printf("%d\n", value[0]);
...

でやったらどうですか?