Advertisement
varden

assembly

Nov 27th, 2013
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;program zaklada, ze jedyne mozliwe znaki to male litery, wielkie litery, cyfry i znak *
  2.    
  3.     org 0
  4.     mov R0, #1Fh
  5.  
  6. petla:
  7.     inc R0              ;inkrementacja adresu
  8.     cjne @R0, #'*', sprawdzZnak ;jezeli nie dotarlismy do * (konca ciagu znakow)
  9.  
  10. koniec:                 ;petla nieskonczona, koniec programu
  11.     ajmp koniec
  12.  
  13. sprawdzZnak:
  14.     cjne @R0, #':', czyCyfra    ;porownujemy znak do ':'.
  15.                     ;':' ma kod ascii wiekszy od cyfr, a mniejszy od liter
  16.  
  17. czyCyfra:
  18.     jc cyfra            ;po porownaniu w sprawdzZnak c = 1, jezeli znak jest cyfra
  19.     cjne @R0, #'[', czyWielka   ;znak nie jest cyfra. porownujemy go do '['.
  20.                     ;'[' ma kod ascii wiekszy od wielkich liter, a mniejszy od malych liter
  21.  
  22. cyfra:
  23.     mov @R0, #'_'           ;zamien cyfre na '_'
  24.     ajmp petla          ;wracamy do petli glownej
  25.    
  26. czyWielka:              ;jesli znak byl mniejszy od '_', to byl duza litera
  27.     jc petla            ;znak byl wielka litera - pomijamy, kontynuujemy glowna petle
  28.  
  29.     ;mala litera
  30.     mov A, @R0          ;litera do rejestru
  31.     subb A, #20h            ;odejmujemy 20h od malej liczby by zrobic wielka
  32.     mov @R0, A          ;zapis poprawionej litery
  33.     ajmp petla          ;wracamy do petli glownej
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement