12. Translating and Starting Program

12.3. Producing an Object Module

12.4. Linking Object Modules

12.5. Loading a Program

12.6. Dynamic Linking

12.7. Lazy Linkage

12.8. Starting Java Applications

13. C Sort Example to Put It All Together

13.1. C Sort Example

void swap(int v[], int k){
	int temp;
	temp = v[k];
	v[k] = v[k+1];
	v[k+1] = temp;
}
// v in $a0, k in $a1, temp in $t0

13.2. The Procedure Swap

swap: s11 $t1, $a1, 2    # $t1 = k * 4
			add $t1, $a0, $t1  # $t1 = v + (k*4) => address of v[k]
			lw  $t0, 0($t1)    # $t0 (temp) = v[k]
			lw  $t2, 4($t1)    # $t2 = v[k+1]
			sw  $t2, 0($t1)    # v[k] = $t2(v[k+1])
			sw  $t0, 4($t1)    # v[k+1] = $t0(temp)
			jr  $ra            # return to calling routine