COSC3302               Program-4			Due:	4/30/2013.
	              SIMPLE-Language Interpreter

	
	Consider a SIMPLE-Language that contains only the following 
	six instructions:

		V <- V+1 	// The same variable
		V <- V-1 	// The same variable
		IF V <> 0 GOTO L
		V1 <- V2
		V1 <- V2 + V3
		V1 <- V2 - V3

	TASK:

	You are to write a program that will do the following:

	1. Execute a given input program (consisting only of
	   the above six instructions, and no others) that takes
	   exactly two input values for X1 and X2, and
	2. Print out the value of the only output variable Y
	   when, in fact, the input program terminates.

	INPUT PROGRAM and INPUT DATA:

	Use the following input program and input data:

	Z1 <- X1
	Z2 <- X2
	Z4 <- Z4 + 1
	Z3 <- Z3 + 1
 [A]	Z5 <- Z1 - Z2
	Z6 <- Z2 - Z1
	IF Z5 <> 0 GOTO B
	IF Z6 <> 0 GOTO C
	Y <- Z1
	IF Z3 <> 0 GOTO E
	IF Z4 <> 0 GOTO A
 [B]	Z1 <- Z1 - Z2
	IF Z3 <> 0 GOTO A
	IF Z4 <> 0 GOTO E
 [C]	Z2 <- Z2 - Z1
	IF Z3 <> 0 GOTO A
	IF Z4 <> 0 GOTO E

	Use each of the following three pairs of inputs:

	100  200
	800  1800
	1200 2800
  
	Bonus Part (For up to 10 points)

	In addition, you will earn up to 10 bonus points by completing the
	following task in good shape:
 	1. Design an source input program in the same SIMPLE language to compute
	   C(m,n) which is the number of combinations of n items out of m.
	   For example, C(4,0) is 1 and C(4,1) is 4, C(4,2) is 6, C(4,3) is
	   4 and C(4,4) is 1.
	   Note that C(m,n) = m!/(n!(m-n)!), So C(6,4) = 6!/(4!2!)=15.
	2. As this program you design will take exactly two inputs (non-negative
	   integers) it will just perpectly fits the interpreter you have.
	   So, run your interperter for this new source program for each of the following
	   five input pairs:
	   10   0	// result should be 1.
	   10   4	// result should be 210.
	   10   5	// result should be 252.
	   100  4	// result should be 3921225.
	   100  5	// result should be 75287520.