code: def _data(ins):
      
      output = []
      t = ins.quad[1]
      q = eval(ins.quad[2])
  
      if t in ('i8', 'u8'):
          size = 'B'
      elif t in ('i16', 'u16'):
          size = 'W'
      elif t in ('i32', 'u32'):
          size = 'W'
          z = list()
          for expr in ins.quad[2]:
              z.extend(['(%s) & 0xFFFF' % expr, '(%s) >> 16' % expr])
          q = z
      elif t == 'str':
          size = "B"
          q = ['"%s"' % x.replace('"', '""') for x in q]
      elif t == 'f':
          dat_ = [api.fp.immediate_float(float(x)) for x in q]
          for x in dat_:
              output.extend(['DEFB %s' % x[0], 'DEFW %s, %s' % (x[1], x[2])])
          return output
      else:
          raise InvalidIC(ins.quad, 'Unimplemented data size %s for %s' % (t, q))
  
      for x in q:
          output.append('DEF%s %s' % (size, x))
  
      return output
docs: Defines a data item (binary).
      It's just a constant expression to be converted do binary data "as is"
  
      1st parameter is the type-size (u8 or i8 for byte, u16 or i16 for word, etc)
      2nd parameter is the list of expressions. All of them will be converted to the
          type required.