joker546645

2.5a

Oct 26th, 2017
44
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. male_polskie db 0A5h, 86h, 0A9h, 88h, 0E4h, 0A2h, 98h, 0ABh, 0BEh
  17. duze_polskie db 0A4h, 8Fh, 0A8h, 9Dh, 0E3h, 0E0h, 97h, 8Dh, 0BDh
  18.  
  19. .code
  20. _main:
  21.  
  22.     mov ecx, (OFFSET koniec_t) - (OFFSET tekst_pocz)
  23.     push ecx
  24.    
  25.     push OFFSET tekst_pocz
  26.     push 1
  27.     call __write
  28.  
  29.     add esp, 12
  30.  
  31.     push 80
  32.     push OFFSET magazyn
  33.     push 0
  34.     call __read
  35.     add esp, 12
  36.  
  37.     mov liczba_znakow, eax
  38.     mov ecx, eax
  39.     mov ebx, 0
  40.  
  41. ptl: mov dl, magazyn[ebx]
  42.      mov eax, 0
  43.  
  44.     zamiana: cmp dl, male_polskie[eax]
  45.              jne kolejne
  46.              mov dl, duze_polskie[eax]
  47.              mov magazyn[ebx], dl
  48.              jmp dalej
  49.  
  50.         kolejne: inc eax
  51.                  cmp eax, 9
  52.                  jb zamiana
  53.    
  54.     cmp dl, 'a'
  55.     jb dalej
  56.     cmp dl, 'z'
  57.     ja dalej
  58.     sub dl, 20h
  59.  
  60.     mov magazyn[ebx], dl
  61. dalej: inc ebx
  62.        loop ptl
  63.    
  64.     push liczba_znakow
  65.     push OFFSET magazyn
  66.     push 1
  67.     call __write
  68.     add esp, 12
  69.    
  70.     push 0
  71.     call _ExitProcess@4
  72.  
  73. END
Add Comment
Please, Sign In to add comment