<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def fill(self, address, data, size, x, y, p):
 """Fill a region of memory with the specified byte. Parameters data : int Data with which to fill memory. If `address` and `size` are word aligned then `data` is assumed to be a word; otherwise it is assumed to be a byte. Notes ----- If the address and size are word aligned then a fast fill method will be used, otherwise a much slower write will be incurred. """

        if size % 4 or address % 4:
            # If neither the size nor the address are word aligned we have to
            # use `write` as `sark_word_set` can only work with words.
            # Convert the data into a string and then write:
            data = struct.pack('<B', data) * size
            self.write(address, data, x, y, p)
        else:
            # We can perform a fill, this will call `sark_word_set` internally.
            self._send_scp(x, y, p, SCPCommands.fill, address, data, size)