Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;program zaklada, ze jedyne mozliwe znaki to male litery, wielkie litery, cyfry i znak *
- org 0
- mov R0, #1Fh
- petla:
- inc R0 ;inkrementacja adresu
- cjne @R0, #'*', sprawdzZnak ;jezeli nie dotarlismy do * (konca ciagu znakow)
- koniec: ;petla nieskonczona, koniec programu
- ajmp koniec
- sprawdzZnak:
- cjne @R0, #':', czyCyfra ;porownujemy znak do ':'.
- ;':' ma kod ascii wiekszy od cyfr, a mniejszy od liter
- czyCyfra:
- jc cyfra ;po porownaniu w sprawdzZnak c = 1, jezeli znak jest cyfra
- cjne @R0, #'[', czyWielka ;znak nie jest cyfra. porownujemy go do '['.
- ;'[' ma kod ascii wiekszy od wielkich liter, a mniejszy od malych liter
- cyfra:
- mov @R0, #'_' ;zamien cyfre na '_'
- ajmp petla ;wracamy do petli glownej
- czyWielka: ;jesli znak byl mniejszy od '_', to byl duza litera
- jc petla ;znak byl wielka litera - pomijamy, kontynuujemy glowna petle
- ;mala litera
- mov A, @R0 ;litera do rejestru
- subb A, #20h ;odejmujemy 20h od malej liczby by zrobic wielka
- mov @R0, A ;zapis poprawionej litery
- ajmp petla ;wracamy do petli glownej
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement