home *** CD-ROM | disk | FTP | other *** search
- IGEN: LEA TABELL,A0 ; A0 pekar på tabellen
- LEA 1(A0),A1 ; A1=A0+1
- MOVE.W ANTAL,D7 ; D7=antal tal
- CLR.W FLAGGA ; Nollställ flaggan
- SORTERA: CMPM.B (A0)+,(A1)+ ; Är tal 2 mindre än tal 1?
- BLS.S EKORREKT ; I sådana fall hoppa över
- MOVE.B -1(A0),D0 ; Nähä, då byter vi talen
- MOVE.B (A0),D1
- MOVE.B D0,(A0)
- MOVE.B D1,-1(A0)
- MOVE.W #$FFFF,FLAGGA ; Och så sätter vi flaggan
- EKORREKT: SUBQ.W #1,D7 ; Minska D7 med 1
- BNE.S SORTERA ; Är alla tal kollade?
- TST.W FLAGGA ; Är talen rätt sorterade?
- BNE.S IGEN ; Om inte, sortera igen
- RTS ; Då var vi färdiga!
-
- TABELL: DC.B 3,2,18,67,43,109,245,18,34,185,0,56,92,171
- ANTAL: DC.W 14-1
- FLAGGA: DC.W 0