Using type casting to avoid warning.
warning message:avoid pointer targets in initialization differ in signedness
Fix none-return and type casting warnings
Enable -std=c99 -pedantic in Makefile. Fix erros.
In order to avoid name conflict, I change asm to __asm__.
Both of these are same meaning.