finally fixed asm code