Eroxl's Notes
Conditional (SM213)

Given the C code:

int a = 5;
int b = 2;

if (a > b) {
	// consequent
} else {
	// alternative
}

write an equivalent conditional in assembly

.pos 0x1000
	# <init>
	ld $a, r0         # r0 = &a
	ld (r0), r0       # r0 = a
	ld $b, r1         # r1 = &b
	ld (r1), r1       # r1 = b
	
	mv r1, r2         # r2 = b
	not r2            # r2 = !b
	inc r2            # r2 = -b
	
	add r0, r2        # r2 = a-b
	
	bgt r2, then      # a-b > 0 => goto then
	
	else: 
		# alternative
		br end_if
	
	then:
		# consequent

	end_if: 

.pos 0x2000
	a:      .long 5
	b:      .long 2