porting assembler code