Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ljmp start
- org 0100h
- start:
- ; wpisanie dziesieciu wartosci
- mov a,#03h
- mov dptr,#3000h
- movx @dptr,a
- mov a,#02h
- inc dptr
- movx @dptr,a
- mov a,#02h
- inc dptr;
- movx @dptr,a
- mov a,#08h
- inc dptr
- movx @dptr,a
- mov a,#06h
- inc dptr
- movx @dptr,a
- mov a,#01h
- inc dptr
- movx @dptr,a
- mov a,#07h
- inc dptr
- movx @dptr,a
- mov a,#04h
- inc dptr
- movx @dptr,a
- mov a,#09h
- inc dptr
- movx @dptr,a
- mov a,#03h
- inc dptr
- movx @dptr,a
- mov dptr,#03000h ; zapis do dprt miejsca w pamieci z poczatkiem tablocy
- movx a,@dptr ; wartosc z komorki pamieci, na która wzkazuje teraz dptr bedzie nowym
- mov r6, a ; 1) minimum
- mov r7, a ; 2) maksimum
- inc dptr ; przejscie do kolejnego elementu tablicy (komórki pamieci)
- mov r0,#9 ; iterator petli (r0)
- petla:
- movx a,@dptr ; wartosc z komorki pamieci, na która wzkazuje teraz dptr bedzie zapisana w akumulatorze
- mov r2,a ; zapis powyzszej wartosci do r2
- inc dptr ; przejscie do kolejnego elementu tablicy (komórki pamieci)
- ;------------MAX------------
- mov a,r7 ; zapis do akumulatora aktualnego maksimum
- subb a,r2 ; wykonanie odjecia: aktuane maksimum - aktualnie przetwarzana wartosc
- mov a,#00h
- addc a,#00h ; jesli ta rozniza bedzie ujemna to mamy zapozyczenie
- ; czyli inczej mówiac nowy element jest wiekszy niz aktualne maksimum
- jnz zmien_max ; wtedy zmianiamy maksimum w r7
- ;---------------------------
- powrot1:
- ;------------MIN------------
- mov a,r2 ; zapis aktualnie przetwarzanej liczby do akumulatora
- subb a,r6 ; wykonanie odjecia: aktualnie przetwarzanej wartosci - aktualne minimum
- mov a,#00h
- addc a,#00h ; jesli ta rozniza bedzie ujemna to mamy zapozyczenie
- ; czyli inczej mówiac nowy element jest mniejszy niz aktualne minimum
- jnz zmien_min ; wtedy zmianiamy minimum w r6
- ;---------------------------
- powrot2:
- dec r0 ; zmniejszenie licznika
- mov a,r0 ; zapis wartosci licznika w akumulatorze
- jnz petla ; dopoki akumulator jest wiekszy od 0 (wlasciwie !=0) to
- ;przechodzimy do ponownego wywolania petli
- jz przejdz_na_koniec_programu ; jesli a==0 to przejscie na koniec programu
- zmien_max: ; wykonanie zmiany maksimum w r7
- mov a,r2
- mov r7, a
- jnz powrot1 ; powrot do petli
- zmien_min: ; wykonanie zmiany minimum w r6
- mov a,r2
- mov r6, a
- jnz powrot2 ; powrot do petli
- przejdz_na_koniec_programu:
- nop
- nop
- nop
- end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement