One thing I've learnt from writing a toy compiler is that this instruction usually means you have a bug: add %al,(%rax) This is the instruction encoding of all zeroes. It means you've jumped to the wrong place, or screwed up the size of an operand.