code: def register_read_multiple(self, register_indices):
          
          num_regs = len(register_indices)
          buf = (ctypes.c_uint32 * num_regs)(*register_indices)
          data = (ctypes.c_uint32 * num_regs)(0)
  
          # TODO: For some reason, these statuses are wonky, not sure why, might
          # be bad documentation, but they cannot be trusted at all.
          statuses = (ctypes.c_uint8 * num_regs)(0)
  
          res = self._dll.JLINKARM_ReadRegs(buf, data, statuses, num_regs)
          if res < 0:
              raise errors.JLinkException(res)
  
          return list(data)
docs: Retrieves the values from the registers specified.
  
          Args:
            self (JLink): the ``JLink`` instance
            register_indices (list): list of registers to read
  
          Returns:
            A list of values corresponding one-to-one for each of the given
            register indices.  The returned list of values are the values in
            order of which the indices were specified.
  
          Raises:
            JLinkException: if a given register is invalid or an error occurs.