code: def _and8(ins):
      
      op1, op2 = tuple(ins.quad[2:])
      if _int_ops(op1, op2) is not None:
          op1, op2 = _int_ops(op1, op2)
  
          output = _8bit_oper(op1)  # Pops the stack (if applicable)
          if op2 != 0:  # X and True = X
              output.append('push af')
              return output
  
          # False and X = False
          output.append('xor a')
          output.append('push af')
          return output
  
      output = _8bit_oper(op1, op2)
      # output.append('call __AND8')
      lbl = tmp_label()
      output.append('or a')
      output.append('jr z, %s' % lbl)
      output.append('ld a, h')
      output.append('%s:' % lbl)
      output.append('push af')
      # REQUIRES.add('and8.asm')
  
      return output
docs: Pops top 2 operands out of the stack, and checks
          if 1st operand AND (logical) 2nd operand (top of the stack),
          pushes 0 if False, not 0 if True.
  
          8 bit un/signed version