Advertisement
joker546645

2.5b

Oct 26th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .686
  2. .model flat
  3. extern _ExitProcess@4 : PROC
  4. extern __write : PROC
  5. extern __read : PROC
  6. public _main
  7.  
  8. .data
  9. tekst_pocz db 10, 'Prosz',0A9h,' napisa',86h,' jaki',98h,' tekst '
  10.            db 'i nacisn',0A5h,86h,' Enter', 10
  11. koniec_t   db ?
  12. magazyn    db 80 dup (?)
  13. nowa_linia db 10
  14. liczba_znakow dd ?
  15.  
  16. .code
  17. _main:
  18.  
  19.     mov ecx, (OFFSET koniec_t) - (OFFSET tekst_pocz)
  20.     push ecx
  21.    
  22.     push OFFSET tekst_pocz
  23.     push 1
  24.     call __write
  25.  
  26.     add esp, 12
  27.  
  28.     push 80
  29.     push OFFSET magazyn
  30.     push 0
  31.     call __read
  32.     add esp, 12
  33.  
  34.     mov liczba_znakow, eax
  35.     mov ecx, eax
  36.     mov ebx, 0
  37.  
  38. ptl: mov dl, magazyn[ebx]
  39.      mov eax, 0
  40.  
  41.     cmp dl, 0A5H ; ą
  42.     je zmianaA
  43.     cmp dl, 86H  ; ć
  44.     je zmianaC
  45.     cmp dl, 0A9H ; ę
  46.     je zmianaE
  47.     cmp dl, 88H  ; ł
  48.     je zmianaL
  49.     cmp dl, 0E4H ; ń
  50.     je zmianaN
  51.     cmp dl, 0A2H ; ó
  52.     je zmianaO
  53.     cmp dl, 98H  ; ś
  54.     je zmianaS
  55.     cmp dl, 0ABH ; Ź
  56.     je zmianaZi
  57.     cmp dl, 0BEH ; Ż
  58.     je zmianaZe
  59.  
  60.     cmp dl, 'a'
  61.     jb  dalej   ; skok, gdy znak nie wymaga zamiany
  62.     cmp dl, 'z'
  63.     ja  dalej   ; skok, gdy znak nie wymaga zamiany
  64.  
  65.     sub dl, 20H ; zamiana na wielkie litery innych liter
  66.     mov magazyn[ebx], dl ; odesłanie znaku do pamięci
  67.     jmp dalej
  68.  
  69. zmianaA:
  70.     sub dl, 1
  71.     jmp dalej
  72.  
  73. zmianaC:
  74.     add dl, 9
  75.     jmp dalej
  76.  
  77. zmianaE:
  78.     sub dl, 1
  79.     jmp dalej
  80.  
  81. zmianaL:
  82.     add dl, 21
  83.     jmp dalej
  84.  
  85. zmianaN:
  86.     sub dl, 1
  87.     jmp dalej
  88.  
  89. zmianaO:
  90.     add dl, 62
  91.     jmp dalej
  92.  
  93. zmianaS:
  94.     sub dl, 1
  95.     jmp dalej
  96.  
  97. zmianaZi:
  98.     sub dl, 30
  99.     jmp dalej
  100.  
  101. zmianaZe:
  102.     sub dl, 1
  103.     jmp dalej
  104.  
  105.    
  106. dalej: mov magazyn[ebx], dl
  107.        inc ebx
  108.        dec ecx
  109.        jnz ptl
  110.    
  111.     push liczba_znakow
  112.     push OFFSET magazyn
  113.     push 1
  114.     call __write
  115.     add esp, 12
  116.    
  117.     push 0
  118.     call _ExitProcess@4
  119.  
  120. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement