movl $-1, -1(%rbp) #constant assign movl -1(%rbp), %eax #assign start movl %eax, -2(%rbp) #assign end movzbl -2(%rbp), %eax #not start testl %eax, %eax setne %al xorl $1, %eax movzbl %al, %eax movb %al, -3(%rbp) andb $1, -3(%rbp) #not end movl -3(%rbp), %eax #assign start movl %eax, -4(%rbp) #assign end movl $1, -8(%rbp) #constant assign