%%off % Optimized Shell Sort % 5.2.1 Page 85 % see also solution of Author: Blake Hegerle % Martin Ruckert, 27.4.2012 PREFIX :Ssort: :Ssort IS @ R IS $0 & Parameter n IS $1 H IS $2 t IS $3 s IS $4 & Local variables j IS $5 i IS $6 K IS $7 Ki IS $8 Rh IS $9 Rn IS $10 d IS $11 h IS $12 tmp IS $13 %%on Ssort SL n,n,3 \hfil$1$& $n \is \hbox{\rm size in byte}$. ADD Rn,R,n \hfil$1$& Address of $R_n$. SL s,t,3 \hfil$1$& \ul{\sl D1.~Loop on $s$.} JMP 1F \hfil$1$ 2H LDO h,H,s \hfil$T$& \ul{\sl D2.~Loop on $j$.} SL h,h,3 \hfil$T$ ADD Rh,R,h \hfil$T$& SUB d,n,h \hfil$T$& SUB j,h,n \hfil$T$& $j\is h+1 $ JMP 0F \hfil$T$& 3H ADD i,d,j \hfil$NT-S$& \ul{\sl D3.~Set up $j$, $K$, $R$.} $i\is j-h$. LDO K,Rn,j \hfil$NT-S$& 4H LDO Ki,R,i \hfil$B+NT-S-A$& \ul{\sl D4.~Compare $K : K_i$.} CMP tmp,K,Ki \hfil$B+NT-S-A$& BNN tmp,6F \hfil$B+3(NT-S-A)$& STO Ki,Rh,i \hfil$B$&\ul{\sl D5.~Move $R_i$, decrease $i$.} SUB i,i,h \hfil$B$& PBNN i,4B \hfil$B+2A$& $0\le i < j$ 6H STO K,Rh,i \hfil$NT-S$& \ul{\sl D6.~$R$ into $R_{i+1}$.} ADD j,j,8 \hfil$NT-S$& Increment $j$. 0H PBN j,3B \hfil$NT-S+3T$& $h\le j < n$ 1H SUB s,s,8 \hfil$T+1$& Decrement $s$. PBNN s,2B \hfil$T+3$& $0\le s < t$ %%off POP 0,0 PREFIX : %%on