Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ljmp start
- org 0100h
- start:
- //punkt 6:
- ;wypelnienie 10 komórek pamieci
- mov a,#08h;
- mov dptr,#2000h;
- movx @dptr,a;
- mov a,#02h;
- inc dptr;
- movx @dptr,a;
- mov a,#01h;
- inc dptr;
- movx @dptr,a;
- mov a,#09h;
- inc dptr;
- movx @dptr,a;
- mov a,#06h;
- inc dptr;
- movx @dptr,a;
- mov a,#03h;
- inc dptr;
- movx @dptr,a;
- mov a,#07h;
- inc dptr;
- movx @dptr,a;
- mov a,#04h;
- inc dptr;
- movx @dptr,a;
- mov a,#00h;
- inc dptr;
- movx @dptr,a;
- mov a,#05h;
- inc dptr;
- movx @dptr,a;
- mov r0,#09h; ;r0 - zmienna zarzadzajaca petla zewnetrzna
- pentla_zewnetrzna: ;poczatek petli zewnetrznej
- mov dptr,#02000h; ;Zapisanie do dptr miejsca w którym zaczyna sie 'tablica'
- mov r1,#09h; ;r1 - zmienna zarzadzajaca petla wewnetrzna
- pentla_wewnetrzna: ;poczatek petli wewnetrznej
- movx a,@dptr; ;Zapisanie wartosci z komórki pamieci wskazywanej przez dptr do akumulatora
- mov r2,a; ;Zapisanie wartosci akumulatora w rejestrze r2
- inc dptr; ;przesuniecie wskaznika na nastepna komórke pamieci
- movx a,@dptr; ;Zapisanie wartosci z komórki pamieci wskazywanej przez dptr do akumulatora
- mov r3,a; ;Zapisanie wartosci akumulatora w rejestrze r3
- subb a,r2; ; w tej i dwóch nastepnych liniach porownujemy wartosci w komorkach pamieci
- mov a,#00h;
- addc a,#00h; ;jesli wartosc akumulatora po wukonaniu tej operacji bedzie rowna 1 to znaczy ze komorki sa
- ;w zlej kolejnosci poniewaz odejmujac r2 od r3 uzyskamy zaporzyczenie 1 gdy r2>r3
- jnz wymiana; ;jesli wartosci w komorkach sa w zlej kolejnosci to w celu ich zamiany skaczemy do kodu odpowiedzialnego za wymiane
- powrot:
- dec r1; ;dekrementujemy r1
- mov a,r1; ;przepisujemy r1 do akumulatora
- jnz pentla_wewnetrzna; ;Jesli akumulator(czyli r1) jest rózne od zera to skaczemy do poczatku petli, jesli nie to konczymy wykonywanie petli
- mov a,r0;
- dec r0;
- jnz pentla_zewnetrzna; ;jesli akumulator(czyli r0) jest rózne od zera to skaczemy do poczatku petli, jesli nie to konczymy wykonywanie petli
- wymiana: ;kod odpowiedzialny za wymiane wartosci komorek
- mov a,r2;
- movx @dptr,a;
- dec dpl; ;dekrementujemy nizszy pólbajt (nie da sie dekrementowac dptr), dph-dekrementacja wyzszego pólbajtu
- mov a,r3;
- movx @dptr,a;
- inc dptr; ;inkrementyjemy dptr
- mov a,#01h;
- jnz powrot; ;wracamy do petli
- nop
- end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement