title: jmp to 'variable' label in assembly (AT&T syntax)
body: <p>I know this might sound stupid, but I'm new to assembly language, so please bear with me!</p>
  
  <p>I have following assembly code, which is the simplified version of what I was trying to do. </p>
  
  <pre><code> 1  # print.s
   2  # C callable: char* print()
   3  
   4  .data
   5  output:
   6          .asciz "abcd"
   7          
   8  .text
   9  .globl _printbin
  10  
  11  _printbin:
  12          pushl %ebp              # set up stack frame
  13          movl %esp, %ebp         # save esp in ebp
  14  
  15          movl $output, %eax      # put the address of "abcd" in eax                              
  16                  
  17          xor %ebx, %ebx                  # clear ebx
  18          movl $5, %ebx                   # put 5 in ebx (input for func)
  19          movl $0, %edx                   # put 1 in edx (index)
  20          jmp _func                       # call func
  21                  
  22  back1:                  
  23          xor %ebx, %ebx                  # clear ebx
  24          movl $7, %ebx                   # put 7 in ebx (input for func)
  25          movl $2, %edx                   # put 2 in edx (index)
  26          jmp _func                       # call func
  27                  
  28  end:            
  29          movl %ebp, %esp                 # restore esp
  30          popl %ebp                       # restore ebp
  31          ret
  32  
  33  # take the input, add 1 to it, 
  34  # then print it to eax at the specified index
  35  _func:                                  # num input in %ebx, index is in %edx , print to: %eax
  36          addb $0x1, %ebx                 # print the result to eax 
  37          movb %ebx, (%eax, %edx)
  38          jmp back1                       # how to decide wether to jump to back1 or to end?
  39                    
  40  .end
  41  
  </code></pre>
  
  <p>THe question is, how do I jump to a some kind of "variable" label. (So sometimes I want to jump to this label, but some other times another label... that kind of idea.)</p>