Microprogramming Slides from [http://ece-research.unm.edu/jimp/codesign/]
Within a single clock cycle, the following activities occur:
Other characteristics:

1 ; Command Field || Jump Field
2 IN -> R0
3 IN -> ACC
4 Lcheck: (R0 - ACC) || JUMP_IF_Z Ldone
5 (R0 - ACC) << 1 || JUMP_IF_C LSmall
6 (R0 - ACC) -> R0 || JUMP Lcheck
7 Lsmall: (ACC - R0) -> ACC || JUMP Lcheck
8 Ldone: JUMP Ldone
Listing 6.1Lines 2 and 3 read in two values from the input port, and store them into registers R0 and ACC.
At the end of the program, the resulting GCD will be available in either ACC or R0
When the registers have different values, the program continues to subtract
the largest one from the smallest one
The larger value stored in R0 and ACC is determined by line 5, a conditional
jump
Lines 4, line 5 and line 6 implement an if-then-else stmt using multiple
conditional and unconditional jump instructions