Wir arbeiten mit den Programmzeilen
(in relativer Nummerierung)
-
-
-
-
-
-
-
-
-
-
Das Programm reduziert also höchstens -mal den Registerinhalt von um . Wenn der Registerinhalt von am Anfang kleiner als ist, so wird dieser Registerinhalt in weniger als Schritten geleert
und in diesem Fall landet man durch einen der bedingten Sprungbefehle
unmittelbar hinter dem Programmabschnitt. Wenn der Registerinhalt von
am Anfang gleich
ist, so wird der Registerinhalt genau im Befehl
geleert und in diesem Fall wird man im letzten Befehl zum Befehl
geleitet. Wenn der Registerinhalt von
am Anfang größer als
ist, so wird der Registerinhalt bis zum Befehl
nicht geleert und in diesem Fall wird man im letzten Befehl unmittelbar weitergeleitet. Das Programm leistet also das Gewünschte.