%%off % Author Martin Ruckert % 5.2 Exercise 11 page 617 PREFIX :reorder: :reorder IS @ R IS $0 P IS $1 n IS $2 i IS $3 j IS $4 ii IS $5 jj IS $6 k IS $7 kk IS $8 rk IS $9 p IS $10 t IS $11 tmp IS $12 %%on SET i,n \hfil$1$ & \ul{\sl P1. Loop on $i$.} JMP 1F \hfil$1$ 2H SL ii,i,3 \hfil$N$ & \ul{\sl P2. Is $p(i)=i$?} LDO p,P,ii \hfil$N$ CMP tmp,p,i \hfil$N$ BZ tmp,1F \hfil$3N-2(A-B)$& Jump if $p(i)=i$. LDO t,R,ii \hfil$A-B$ & \ul{\sl P3. Begin cycle.} $t\is R_i$ SET j,i; SET jj,ii \hfil$2(A-B)$ &$j \is i$. 4H LDO k,P,jj \hfil$N-A$ & \ul{\sl P4. Fix $R_j$.} $k \is p(j)$. SL kk,k,3 \hfil$N-A$ LDO rk,R,kk \hfil$N-A$ STO rk,R,jj \hfil$N-A$ & $R_j \is R_k$. STO j,P,jj \hfil$N-A$ & $p(j) \is j$. SET j,k; SET jj,kk \hfil$2(N-A)$ & $j \is k$. LDO p,P,jj \hfil$N-A$ CMP tmp,p,i \hfil$N-A$ PBNZ tmp,4B \hfil$N-A$ & Repeat if $p(j)\ne i$. STO t,R,jj \hfil$A-B$ & \ul{\sl P5. End cycle.} STO j,P,jj \hfil$A-B$ & $p(j) \is j$. 1H SUB i,i,1 \hfil$N+1$ PBNN i,2B \hfil$N+3$ & $N>i\ge 0$. %%off POP 0,0 PREFIX : %%on