change gas to intel syntax
fix some constant macro and apply c preprocessor to asm file and ld file
make switching function static using function pointer