This is the working assembler