Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .686
- .model flat
- extern _ExitProcess@4 : PROC
- extern __write : PROC
- extern __read : PROC
- public _main
- .data
- tekst_pocz db 10, 'Prosz',0A9h,' napisa',86h,' jaki',98h,' tekst '
- db 'i nacisn',0A5h,86h,' Enter', 10
- koniec_t db ?
- magazyn db 80 dup (?)
- nowa_linia db 10
- liczba_znakow dd ?
- .code
- _main:
- mov ecx, (OFFSET koniec_t) - (OFFSET tekst_pocz)
- push ecx
- push OFFSET tekst_pocz
- push 1
- call __write
- add esp, 12
- push 80
- push OFFSET magazyn
- push 0
- call __read
- add esp, 12
- mov liczba_znakow, eax
- mov ecx, eax
- mov ebx, 0
- ptl: mov dl, magazyn[ebx]
- mov eax, 0
- cmp dl, 0A5H ; ą
- je zmianaA
- cmp dl, 86H ; ć
- je zmianaC
- cmp dl, 0A9H ; ę
- je zmianaE
- cmp dl, 88H ; ł
- je zmianaL
- cmp dl, 0E4H ; ń
- je zmianaN
- cmp dl, 0A2H ; ó
- je zmianaO
- cmp dl, 98H ; ś
- je zmianaS
- cmp dl, 0ABH ; Ź
- je zmianaZi
- cmp dl, 0BEH ; Ż
- je zmianaZe
- cmp dl, 'a'
- jb dalej ; skok, gdy znak nie wymaga zamiany
- cmp dl, 'z'
- ja dalej ; skok, gdy znak nie wymaga zamiany
- sub dl, 20H ; zamiana na wielkie litery innych liter
- mov magazyn[ebx], dl ; odesłanie znaku do pamięci
- jmp dalej
- zmianaA:
- sub dl, 1
- jmp dalej
- zmianaC:
- add dl, 9
- jmp dalej
- zmianaE:
- sub dl, 1
- jmp dalej
- zmianaL:
- add dl, 21
- jmp dalej
- zmianaN:
- sub dl, 1
- jmp dalej
- zmianaO:
- add dl, 62
- jmp dalej
- zmianaS:
- sub dl, 1
- jmp dalej
- zmianaZi:
- sub dl, 30
- jmp dalej
- zmianaZe:
- sub dl, 1
- jmp dalej
- dalej: mov magazyn[ebx], dl
- inc ebx
- dec ecx
- jnz ptl
- push liczba_znakow
- push OFFSET magazyn
- push 1
- call __write
- add esp, 12
- push 0
- call _ExitProcess@4
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement