Many thanks to you, the app works correctly according to your sulotion:handshake: But I am confused with another situation as below (static int my_an = 0 ===> int my_an = 0) int main() { int my_an = 0; pincrement(&my_an); pincrement(&my_an); pincrement(&my_an); printf("my_an is %d\n",my_an); } it show me a wrong result => "my_an is 0". Is there any differences between the local variable and the static variable as the param? :confused: -- View this message in context: http://old.nabble.com/Help%21-Program-crashed-when-call-the-inline-assembly-function-continuously-tp28094526p28097083.html Sent from the gcc - Help mailing list archive at Nabble.com.