while (a != b) { if (a > b) { a -= b; } else { b -= a; } } /* start: if (a == b) goto end if (a <= b) goto elsecase a -= b goto endif elsecase: b -= a endif: goto start end: */ /* symbol table: a @ 0x80 b @ 0x81 end @ 0x84 temp: c = r0 d = r1 start: c = a R0 = load from 0x80 6,0,3; 0x80 63 80 d = b R1 = load from 0x81 6,1,3; 0x81 67 81 d = -d 5,1,1 55 c += d c = !c c = !c if c <= 0: goto end R2 = load from 0x84; goto 6,2,3; 0x84 6B 84 7,0,2 72 if (a <= b) goto elsecase a -= b goto endif elsecase: b -= a endif: goto start end: */