Question: I'm writing a MIPS program to sort 8 ascii atrings, the addresses of which are in registers $t0-7. When comparing two strings, I need to pass the addresses into a function (by saving into $s0 and $s1). If I want to do this in a loop, how can I increment the register values? Can I do this? Or do I need to put the addresses all in memory instead?

For example, if my loop is like this, in pseudocode:

```
for loop with index i:
 move address from register j into $s0
 move address from register j+1 into $s1
 call function for return value
 use return value to perform swapping operation
 increment i
 jump back to loop if i<bound

```

Where j is arbitrary, I'm just showing how I need to retrieve from two consecutive registers.

Is there a way to use offset notation for registers like you can with memory locations?

Answer: 
"Is there a way to use offset notation for registers like you can with memory locations?"

No ! Access to registers are hardcoded in assembly instructions. You can't access to a computed register.
To increment a register, add 1 to it. Like this:

```
addiu $t0, $t0, 1

```

There are many registers on MIPS. If you don't want to trash the base address in some register, use another register for the base+offset, and increment it as necessary. Or use a third register as loop counter, and recalculate base+offset as necessary.