code: def _divu8(ins):
      
      op1, op2 = tuple(ins.quad[2:])
      if is_int(op2):
          op2 = int8(op2)
  
          output = _8bit_oper(op1)
          if op2 == 1:
              output.append('push af')
              return output
  
          if op2 == 2:
              output.append('srl a')
              output.append('push af')
              return output
  
          output.append('ld h, %i' % int8(op2))
      else:
          if op2[0] == '_':  # Optimization when 2nd operand is an id
              if is_int(op1) and int(op1) == 0:
                  output = list()  # Optimization: Discard previous op if not from the stack
                  output.append('xor a')
                  output.append('push af')
                  return output
  
              rev = True
              op1, op2 = op2, op1
          else:
              rev = False
  
          output = _8bit_oper(op1, op2, rev)
  
      output.append('call __DIVU8_FAST')
      output.append('push af')
      REQUIRES.add('div8.asm')
      return output
docs: Divides 2 8bit unsigned integers. The result is pushed onto the stack.
  
      Optimizations:
        * If 2nd op is 1 then
          do nothing
  
        * If 2nd op is 2 then
          Shift Right Logical