1. A method of de-interleaving a signal, the method comprising extracting data from the signal; storing the extracted data in a data memory ( 28 ) and reading the stored extracted data from the data memory ( 28 ) after said storing; computing addresses, for use in said storing and/or reading, from preceding addresses that have been used for said storing and/or reading, by means of repeated execution of a program loop that contains an address update instruction for computing the addresses, the address update instruction defining locations of an old address operand and a new address result, the new address result being formed in response to at least part of the executions of the address update instruction by permuting positions of a plurality of bits from the old address operand and forming of a bit of the new address result as a logic function of a combination of bits from the old address operand.