
/* BEGIN GENERATED CODE */#include "cmm450.csci"
/*Declarations Section*/
/*Function Declarations Section*/
/*array x */
F0001:
	/*function: minloc label: F0001 param cnt: 3 */
	/* BEGIN LOCAL DECLARATIONS */
	push(0)
	push(0)
	push(0)
	/* Begin Expression k */
	/* name:k address:5 type:12 local:2 */
	/* LHS Assign (Address) */
	push(5)
	/* RHS Assign (Value) */
	/* Begin Expression low */
	/* name:low address:1 type:12 local:1 */
	push(1)
	load(SP)
	/* End Expression */
	store(SP)
	/* End Expression */
	/* Begin Expression x */
	/* name:x address:4 type:12 local:2 */
	/* LHS Assign (Address) */
	push(4)
	/* RHS Assign (Value) */
	/* Begin Expression a */
	/* name:a address:0 type:13 local:1 */
	/* Begin Expression low */
	/* name:low address:1 type:12 local:1 */
	push(1)
	load(SP)
	/* End Expression */
	push(0)
	load(SP)
	add
	load(0)
	/* End Expression */
	store(SP)
	/* End Expression */
	/* Begin Expression i */
	/* name:i address:3 type:12 local:2 */
	/* LHS Assign (Address) */
	push(3)
	/* RHS Assign (Value) */
	/* Begin Expression low */
	/* name:low address:1 type:12 local:1 */
	push(1)
	load(SP)
	push(1)
	add
	/* End Expression */
	store(SP)
	/* End Expression */
L0001:

	/* Begin Expression i */
	/* name:i address:3 type:12 local:2 */
	push(3)
	load(SP)
	/* name:high address:2 type:12 local:1 */
	push(2)
	load(SP)
	lt
	/* End Expression */
	brz( L0002 )
	/* BEGIN LOCAL DECLARATIONS */
	/* Begin Expression a */
	/* name:a address:0 type:13 local:1 */
	/* Begin Expression i */
	/* name:i address:3 type:12 local:2 */
	push(3)
	load(SP)
	/* End Expression */
	push(0)
	load(SP)
	add
	load(0)
	/* name:x address:4 type:12 local:2 */
	push(4)
	load(SP)
	lt
	/* End Expression */
	brz( L0004 )
	/* BEGIN LOCAL DECLARATIONS */
	/* Begin Expression x */
	/* name:x address:4 type:12 local:2 */
	/* LHS Assign (Address) */
	push(4)
	/* RHS Assign (Value) */
	/* Begin Expression a */
	/* name:a address:0 type:13 local:1 */
	/* Begin Expression i */
	/* name:i address:3 type:12 local:2 */
	push(3)
	load(SP)
	/* End Expression */
	push(0)
	load(SP)
	add
	load(0)
	/* End Expression */
	store(SP)
	/* End Expression */
	/* Begin Expression k */
	/* name:k address:5 type:12 local:2 */
	/* LHS Assign (Address) */
	push(5)
	/* RHS Assign (Value) */
	/* Begin Expression i */
	/* name:i address:3 type:12 local:2 */
	push(3)
	load(SP)
	/* End Expression */
	store(SP)
	/* End Expression */
	jump( L0003 )
L0004:

L0003:

	/* Begin Expression i */
	/* name:i address:3 type:12 local:2 */
	/* LHS Assign (Address) */
	push(3)
	/* RHS Assign (Value) */
	/* Begin Expression i */
	/* name:i address:3 type:12 local:2 */
	push(3)
	load(SP)
	push(1)
	add
	/* End Expression */
	store(SP)
	/* End Expression */
	jump( L0001 )
L0002:

	/* Begin Expression k */
	/* name:k address:5 type:12 local:2 */
	push(5)
	load(SP)
	/* End Expression */
	ret
	/* automatic return */
	ret
F0002:
	/*function: sort label: F0002 param cnt: 3 */
	/* BEGIN LOCAL DECLARATIONS */
	push(0)
	push(0)
	/* Begin Expression i */
	/* name:i address:3 type:12 local:2 */
	/* LHS Assign (Address) */
	push(3)
	/* RHS Assign (Value) */
	/* Begin Expression low */
	/* name:low address:1 type:12 local:1 */
	push(1)
	load(SP)
	/* End Expression */
	store(SP)
	/* End Expression */
L0005:

	/* Begin Expression i */
	/* name:i address:3 type:12 local:2 */
	push(3)
	load(SP)
	/* name:high address:2 type:12 local:1 */
	push(2)
	load(SP)
	push(1)
	sub
	lt
	/* End Expression */
	brz( L0006 )
	/* BEGIN LOCAL DECLARATIONS */
	push(0)
	/* Begin Expression k */
	/* name:k address:4 type:12 local:2 */
	/* LHS Assign (Address) */
	push(4)
	/* RHS Assign (Value) */
	/* Begin Expression minloc */
	/* Begin Expression a */
	/* name:a address:0 type:13 local:1 */
	push(0)	/* indirect address of array */
	load(SP)	/* address address of array */
	/* End Expression */
	/* Begin Expression i */
	/* name:i address:3 type:12 local:2 */
	push(3)
	load(SP)
	/* End Expression */
	/* Begin Expression high */
	/* name:high address:2 type:12 local:1 */
	push(2)
	load(SP)
	/* End Expression */
	push(1 )
	call( 3 )
	/* End Expression */
	store(SP)
	/* End Expression */
	/* Begin Expression t */
	/* name:t address:5 type:12 local:3 */
	/* LHS Assign (Address) */
	push(5)
	/* RHS Assign (Value) */
	/* Begin Expression a */
	/* name:a address:0 type:13 local:1 */
	/* Begin Expression k */
	/* name:k address:4 type:12 local:2 */
	push(4)
	load(SP)
	/* End Expression */
	push(0)
	load(SP)
	add
	load(0)
	/* End Expression */
	store(SP)
	/* End Expression */
	/* Begin Expression a */
	/* name:a address:0 type:13 local:1 */
	/* Begin Expression k */
	/* name:k address:4 type:12 local:2 */
	push(4)
	load(SP)
	/* End Expression */
	push(0)
	load(SP)	/* indirect address of array */
	add
	/* Begin Expression a */
	/* name:a address:0 type:13 local:1 */
	/* Begin Expression i */
	/* name:i address:3 type:12 local:2 */
	push(3)
	load(SP)
	/* End Expression */
	push(0)
	load(SP)
	add
	load(0)
	/* End Expression */
	store(0)
	/* End Expression */
	/* Begin Expression a */
	/* name:a address:0 type:13 local:1 */
	/* Begin Expression i */
	/* name:i address:3 type:12 local:2 */
	push(3)
	load(SP)
	/* End Expression */
	push(0)
	load(SP)	/* indirect address of array */
	add
	/* Begin Expression t */
	/* name:t address:5 type:12 local:3 */
	push(5)
	load(SP)
	/* End Expression */
	store(0)
	/* End Expression */
	/* Begin Expression i */
	/* name:i address:3 type:12 local:2 */
	/* LHS Assign (Address) */
	push(3)
	/* RHS Assign (Value) */
	/* Begin Expression i */
	/* name:i address:3 type:12 local:2 */
	push(3)
	load(SP)
	push(1)
	add
	/* End Expression */
	store(SP)
	/* End Expression */
	jump( L0005 )
L0006:

	/* automatic return */
	end
F0003:
	/*function: main label: F0003 param cnt: 0 */
	/* BEGIN LOCAL DECLARATIONS */
	push(0)
	/* Begin Expression i */
	/* name:i address:0 type:12 local:2 */
	/* LHS Assign (Address) */
	push(0)
	/* RHS Assign (Value) */
	/* Begin Expression 0 */
	push(0)
	/* End Expression */
	store(SP)
	/* End Expression */
L0007:

	/* Begin Expression i */
	/* name:i address:0 type:12 local:2 */
	push(0)
	load(SP)
	push(10)
	lt
	/* End Expression */
	brz( L0008 )
	/* BEGIN LOCAL DECLARATIONS */
	/* Begin Expression x */
	/* name:x address:0 type:13 local:0 */
	/* Begin Expression i */
	/* name:i address:0 type:12 local:2 */
	push(0)
	load(SP)
	/* End Expression */
	push(0)
	add
	/* Begin Expression input */
	push(-2 )
	call( 0 )
	/* End Expression */
	store(0)
	/* End Expression */
	/* Begin Expression i */
	/* name:i address:0 type:12 local:2 */
	/* LHS Assign (Address) */
	push(0)
	/* RHS Assign (Value) */
	/* Begin Expression i */
	/* name:i address:0 type:12 local:2 */
	push(0)
	load(SP)
	push(1)
	add
	/* End Expression */
	store(SP)
	/* End Expression */
	jump( L0007 )
L0008:

	/* Begin Expression sort */
	/* Begin Expression x */
	/* name:x address:0 type:13 local:0 */
	push(0)	/* address address of array */
	/* End Expression */
	/* Begin Expression 0 */
	push(0)
	/* End Expression */
	/* Begin Expression 10 */
	push(10)
	/* End Expression */
	push(2 )
	call( 3 )
	/* End Expression */
	/* Begin Expression i */
	/* name:i address:0 type:12 local:2 */
	/* LHS Assign (Address) */
	push(0)
	/* RHS Assign (Value) */
	/* Begin Expression 0 */
	push(0)
	/* End Expression */
	store(SP)
	/* End Expression */
L0009:

	/* Begin Expression i */
	/* name:i address:0 type:12 local:2 */
	push(0)
	load(SP)
	push(10)
	lt
	/* End Expression */
	brz( L0010 )
	/* BEGIN LOCAL DECLARATIONS */
	/* Begin Expression output */
	/* Begin Expression x */
	/* name:x address:0 type:13 local:0 */
	/* Begin Expression i */
	/* name:i address:0 type:12 local:2 */
	push(0)
	load(SP)
	/* End Expression */
	push(0)
	add
	load(0)
	/* End Expression */
	push(-1 )
	call( 1 )
	/* End Expression */
	/* Begin Expression i */
	/* name:i address:0 type:12 local:2 */
	/* LHS Assign (Address) */
	push(0)
	/* RHS Assign (Value) */
	/* Begin Expression i */
	/* name:i address:0 type:12 local:2 */
	push(0)
	load(SP)
	push(1)
	add
	/* End Expression */
	store(SP)
	/* End Expression */
	jump( L0009 )
L0010:

	/* automatic return */
	end
CALLSWITCH:
	jumptable
	entry( -2 , INPUT )
	entry ( -1 , OUTPUT )
	entry ( 0 , INIT )
	entry ( 1 , F0001 )/* minloc */
	entry ( 2 , F0002 )/* sort */
MAIN:
	entry ( 3 , F0003 )/* main */
	endtable
/*Var Declarations Section*/
INIT:
	push(0)
	push(0)
	push(0)
	push(0)
	push(0)
	push(0)
	push(0)
	push(0)
	push(0)
	push(0)
	start
/* END OF GENERATED CODE */
