rootuss

Untitled

Mar 30th, 2020
659
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. ljmp start
  3. org 0100h
  4. start:
  5.  
  6. //punkt 6:
  7.     ;wypelnienie 10 komórek pamieci
  8.     mov a,#08h;
  9.     mov dptr,#2000h;
  10.     movx @dptr,a;
  11.     mov a,#02h;
  12.     inc dptr;
  13.     movx @dptr,a;
  14.     mov a,#01h;
  15.     inc dptr;
  16.     movx @dptr,a;
  17.     mov a,#09h;
  18.     inc dptr;
  19.     movx @dptr,a;
  20.     mov a,#06h;
  21.     inc dptr;
  22.     movx @dptr,a;
  23.     mov a,#03h;
  24.     inc dptr;
  25.     movx @dptr,a;
  26.     mov a,#07h;
  27.     inc dptr;
  28.     movx @dptr,a;
  29.     mov a,#04h;
  30.     inc dptr;
  31.     movx @dptr,a;
  32.     mov a,#00h;
  33.     inc dptr;
  34.     movx @dptr,a;
  35.     mov a,#05h;
  36.     inc dptr;
  37.     movx @dptr,a;
  38.    
  39.     mov r0,#09h;            ;r0 - zmienna zarzadzajaca petla zewnetrzna
  40. pentla_zewnetrzna:          ;poczatek petli zewnetrznej
  41.     mov dptr,#02000h;       ;Zapisanie do dptr miejsca w którym zaczyna sie 'tablica'
  42.     mov r1,#09h;            ;r1 - zmienna zarzadzajaca petla wewnetrzna
  43.   pentla_wewnetrzna:        ;poczatek petli wewnetrznej
  44.     movx a,@dptr;           ;Zapisanie wartosci z komórki pamieci wskazywanej przez dptr do akumulatora                   
  45.     mov r2,a;               ;Zapisanie wartosci akumulatora w rejestrze r2     
  46.     inc dptr;               ;przesuniecie wskaznika na nastepna komórke pamieci           
  47.     movx a,@dptr;           ;Zapisanie wartosci z komórki pamieci wskazywanej przez dptr do akumulatora                   
  48.     mov r3,a;               ;Zapisanie wartosci akumulatora w rejestrze r3
  49.     subb a,r2;              ; w tej i dwóch nastepnych liniach porownujemy wartosci w komorkach pamieci
  50.     mov a,#00h;        
  51.     addc a,#00h;            ;jesli wartosc akumulatora po wukonaniu tej operacji bedzie rowna 1 to znaczy ze komorki sa
  52.                             ;w zlej kolejnosci poniewaz odejmujac r2 od r3 uzyskamy zaporzyczenie 1 gdy r2>r3
  53.     jnz wymiana;            ;jesli wartosci w komorkach sa w zlej kolejnosci to w celu ich zamiany skaczemy do kodu odpowiedzialnego za wymiane
  54.     powrot:
  55.     dec r1;                 ;dekrementujemy r1
  56.     mov a,r1;               ;przepisujemy r1 do akumulatora
  57.   jnz pentla_wewnetrzna;    ;Jesli akumulator(czyli r1) jest rózne od zera to skaczemy do poczatku petli, jesli nie to konczymy wykonywanie petli
  58.     mov a,r0;
  59.     dec r0;    
  60. jnz pentla_zewnetrzna;      ;jesli akumulator(czyli r0) jest rózne od zera to skaczemy do poczatku petli, jesli nie to konczymy wykonywanie petli
  61.  
  62.     wymiana:            ;kod odpowiedzialny za wymiane wartosci komorek
  63.     mov a,r2;          
  64.     movx @dptr,a;
  65.     dec dpl;            ;dekrementujemy nizszy pólbajt (nie da sie dekrementowac dptr), dph-dekrementacja wyzszego pólbajtu
  66.     mov a,r3;
  67.     movx @dptr,a;
  68.     inc dptr;           ;inkrementyjemy dptr
  69.     mov a,#01h;
  70.     jnz powrot;         ;wracamy do petli
  71.    
  72.    
  73.    
  74.     nop
  75.  end start
RAW Paste Data