rootuss

Untitled

Mar 30th, 2020
940
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,#01h;
  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,#08h;
  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 r6, #0  //min
  40.     mov r7, #0  //max
  41.    
  42.    
  43.     mov r0,#09h;            ;r0 - zmienna zarzadzajaca petla
  44.    
  45. petla:          ;poczatek petli
  46.     mov dptr,#02000h;       ;Zapisanie do dptr miejsca w którym zaczyna sie 'tablica'
  47.  
  48.     movx a,@dptr;           ;Zapisanie wartosci z komórki pamieci wskazywanej przez dptr do akumulatora                   
  49.     mov r2,a;               ;Zapisanie  wartosci akumulatora w rejestrze r2    
  50.     inc dptr;               ;przesuniecie wskaznika na nastepna komórke pamieci           
  51.    
  52.     //w r2 oraz akum. jest aktalna wartosc z tablicy (przetwarzana)
  53.     //sprawdzamy warunki   
  54.     subb a,r7;              ; w tej i dwóch nastepnych liniach porownujemy wartosci w komorkach pamieci
  55.     mov a,#00h;        
  56.     addc a,#00h;            ;jesli wartosc akumulatora po wukonaniu tej operacji bedzie rowna 1 to znaczy ze komorki sa
  57.                             ;w zlej kolejnosci poniewaz odejmujac r2 od r3 uzyskamy zaporzyczenie 1 gdy r2>r3
  58.     jnz zmien_max;
  59.    
  60.     powrot:
  61.    
  62.    
  63.     dec r0;                 ;dekrementujemy r1
  64.     mov a,r0;               ;przepisujemy r1 do akumulatora
  65. //  dec r0;    
  66.     jnz petla;      ;jesli akumulator(czyli r0) jest rózne od zera to skaczemy do poczatku petli, jesli nie to konczymy wykonywanie petli
  67.  
  68.  
  69.     zmien_max:          ;kod odpowiedzialny za wymiane wartosci komorek
  70.     mov a,r2;
  71.     mov r7, a;    //zapis do r7 nowego maxa
  72.     jnz powrot;         ;wracamy do petli
  73.    
  74.    
  75.    
  76.     nop
  77.  end start
RAW Paste Data