A feladat megnevezése            (MCS85-re)

 

Komparáló szoftver készítése, mely a perifériáról behozott két nyolcbites bináris számot összehasonlítja és az eredménytől függően más-más logikai kapcsolatot hoz létre közöttük.

 

A logikai kapcsolat a két behozott értékre vonatkozik,attól függően,hogy a komparálásnak mi lett az eredménye.

 

Tehát két 8bites bináris számot hasonlít össze az áramkor és ha C=B akkor negálja azakkumulátor tartalmát. Ha C<B vagy kapcsolatot kell csinálni C és az aksi között és ha C>B akkor és kapcsolatot kell létrehozni az aksi és C között.

 

Egy lehetséges megoldás a forrásnyelvi programra:

 

 

8000    IN 00              //A nulla nullás portról beviszünk egy adatot

8002    MOV C,A       //Ezt az adatot elmozgatjuk a „C” regiszterbe

8003    IN 01              // A nulla egyes portról beviszünk egy másik adatot

8005    MOV B,A       //Ezt az adatot a „B” regiszterbe mozgatjuk

8006    CMP C           //Kivonja az „A” tartalmából a „C” regiszter értékét

8007    JZ 8015           //Ugrás a 8015-ös címre ha a „Zero” bit 1 (C=B)    Tehát ha a C megegyezik a b-vel akkor ugrik 8015-ös címre

800A   JC 801D          //Ugrás a 801D címre ha a „Carry” bit 1 (C>B)      Ha C nagyobb B-nél akkor 801D címre ugrik

800D   ORA C            //Vagy kapcsolat „C”-vel ha (C<B)       ha B nagyobb C-nél akkor nem ugrik el a program hanem folytatódik a program.

800E    OUT 04           //Kiíratás a 04-es kijelzőre      

8010    OUT 05           //Kiíratás a 05-ös kijelzőre

8012    JMP 8000       //Ugrás az elejére

8015    CMA               //Akkumulátor negálása

8016    OUT 04           //Kiíratás a 04-es kijelzőre

8018    OUT 05           //Kiíratás a 05-ös kijelzőre

801A   JMP 8000       //Ugrás az elejére

801D   ANA C           //És kapcsolat C-vel

801E    OUT 04           //Kiíratás a 04-es kijelzőre

8020    OUT 05           //Kiíratás a 05-ös kijelzőre

8022    JMP 8000       //Ugrás az elejére

 

Az én megoldásom erre a feladatra:

 

A 8000   IN 00           //Ha az előzőt érted akkor ezt is //

A 8002   MOV B,A

A 8003   IN 01

A 8005   MOV C,A

A 8006   CMP B

A 8007   JZ 8015

A 800A   JC 8019

A 800D   ORA B

A 800E   OUT 04

A 8010   OUT 05

A 8012   JMP 8000

A 8015   CMA

A 8016   JMP 800E

A 8019   ANA B

A 801A   JMP 800E