listing assembleur pour le tri

Des MO et des TO...

Modérateur : Politburo

Répondre
smague

listing assembleur pour le tri

Message par smague »

Voici le

listing source assembleurqui génère les codes du fichier TRI.BIN vu

précédemment____________________________________ * tri de chaines de caracteres Basic* mettre les chaines à trier dans un tableau* à 1 dimension* la

dimension du tableau doit correspondre* au nombre de chaines TITLE TRI DE CHAINES BASIC ORG $DF00 DEFUSR0=&HDF00* USR0(A$(0)) passe

dans X l'adresse du 1er element* du tableau .* Stockage dans la pile de la dimension du tableau* et de l adresse du 1er elementTRI LDD -2,X

SUBD #1 PSHS D PSHS X* adresse 1er element -> UENCUN LDU ,S* adresse du 1er elem -> X LEAX ,U CLR

<TST,PCR LDD 2,S recup nb elem PSHS D et creation compteurSUTOUR LDA ,X+ longueur chaine1 PSHS A dans

PILE S LEAY 2,X adr chaine2 -> Y LDA ,Y+ longueur chaine 2 dans PSHS A pile S LDX ,X adr 1er carac

ch1 ->X LDY ,y adr 1er car ch2 -> Y CARSUI LDA ,X+ car courant ch1 -> A CMPA #$16 elimination sequences

BNE PASACC accents LEAX 1,X decrem long ch1 LDA ,X+ et recup du carac DEC 1,S accentué BEQ ORDRE

DEC 1,S BEQ ORDREPASACC BSR MAJMIN min -> MAJ PSHS A* Meme traitement pour caractere chaine 2 LDA ,Y+

CMPA #$16 BNE PASAC1 LEAY 1,Y LDA ,Y+ DEC 1,S BEQ DESOR1 DEC 1,S BEQ DESOR1PASAC1 BSR

MAJMIN CMPA ,S comp des 2 carac PULS A BLO DESORD car1>car2 BHI ORDRE car1<car2 DEC 1,S

fin ch1 ? BEQ ORDRE DEC ,S fin ch2 ? BEQ DESORD BRA CARSUI comparer carac suivFITOUR PULS D ajuster

pointeur S TST <TST,PCR 1 echange ? BNE ENCUN oui -> encore 1 tour PULS D,X non -> fin RTSTST RMB

1DESOR1 PULS A ajuster pointeur sDESORD INC <TST,PCR flag d echange LEAX ,U adr descripteurs LEAY 3,U chaines à echanger

LDA #3 PSHS AECHAN LDA ,X permutation LDB ,Y des STB ,X+ descripteurs STA ,Y+ DEC ,S BNE ECHAN

PULS A ajuster pointeur SORDRE PULS D ajuster pointeur S DEC 1,S fin tableau ? BEQ FITOUR oui LEAU 3,U non ->

comparer LEAX ,U chaines BRA SUTOUR suivantes MAJMIN CMPA #$60 BLO MAJUS SUBA #'a-'AMAJUS RTS END TRI

___________________________
Guyot Daniel
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 14
Enregistré le : 24 janv. 2003 10:19
Localisation : Pont du Château (Clermont-Ferrand)
Contact :

tri de chaînes

Message par Guyot Daniel »

Il y a longtemps, j'ai écrit ce genre de routine pour un programme de gestion de bibliothèque pour la famille TO sous basic 128/512 (pb de banque mémoire). De plus elle s'installait et s'executait sous basic.
Guyot

Daniel
Répondre

Retourner vers « Thomson »