added volatile keyword to inline asm instructions