'Performs a single store.'

def _single_store(self, addr, offset, size, data):

    if ((offset == 0) and (size == self.width)):
        self._contents[addr] = data
    elif (offset == 0):
        cur = self._single_load(addr, size, (self.width - size))
        self._contents[addr] = data.concat(cur)
    elif ((offset + size) == self.width):
        cur = self._single_load(addr, 0, offset)
        self._contents[addr] = cur.concat(data)
    else:
        cur = self._single_load(addr, 0, self.width)
        start = cur.get_bytes(0, offset)
        end = cur.get_bytes((offset + size), ((self.width - offset) - size))
        self._contents[addr] = start.concat(data, end)
