X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=an_faculteit.tex;h=9f11a5376b18938bad4fa9032dea9f7c785b9478;hb=ace36a84d561e370c5f8f7f6542daa555440531b;hp=2bb549180d05c3a5378dd54fdd57969ab6210663;hpb=ac16d9fd26cf27ed1c0c204628bc6f8f52c5c46f;p=sec1415.git diff --git a/an_faculteit.tex b/an_faculteit.tex index 2bb5491..9f11a53 100644 --- a/an_faculteit.tex +++ b/an_faculteit.tex @@ -23,13 +23,12 @@ MARKERING A: // x-1 - // Twee waardes ervoor gepushed dus $n=n+2$ - // Un(3) -push 3 // + // Un(2) +push 2 // push 1 // roll // dup // -push 4 // +push 3 // push 1 // roll // push 1 // @@ -46,7 +45,8 @@ pointer // als x=0 dan draait de DP niet en gaat het programma naar pad B // als x$\neq$ dan draait de DP en gaat het programma naar pad A PAD A: -skip //een oneindig aantal witte blokken, y is nu x! +skip // een oneindig aantal witte blokken, y is nu x! + // evt een outchar om $y$ naar standardout te printen PAD B: // y:=y*x @@ -56,24 +56,33 @@ push 3 // Un(2+1) push 2 // roll // dup // -push 5 // +push 4 // push 1 // roll // mul // x*y -push 3 // Ass(2) -push 2 +push 2 // Ass(1) +push 1 roll pop -push 2 + + // x:=x-1 +push 2 // Un(2) push 1 roll - // x:=x-1 -dup // Un(1) +dup +push 3 +push 1 +roll + + push 1 // sub // x-1 -push 2 // Ass(1) +push 3 // Ass(2) +push 2 +roll +pop +push 2 push 1 roll -pop // nu gaat het programma weer via een wit pad naar markering A \end{lstlisting}