added asm block and variable definitions